Как вызвать конкретную метку уточнения Google Custom Search Engine? - PullRequest
3 голосов
/ 27 мая 2011

В настоящее время наша организация использует систему пользовательского поиска Google для автоматического предложения, и в нашей CSE настроено около 3 ярлыков уточнения.Ранее мы использовали WebSearch и SearchControl, а в WebSearch есть метод setSiteRestriction, который позволяет нам специально выбирать метку уточнения: - http://code.google.com/apis/websearch/docs/reference.html#_class_GwebSearch

Предыдущий пример кода:

var searchControl = new google.search.SearchControl();

var webSearch = new google.search.WebSearch();

//Refinement allows us to tell Google which specific sites to search
var refinement="Support";    
//filter custom search and currently there are 3 refinements
(some other variables declaration here including 'product')
switch(product)

{

    case "10000":
        refinement = "Support1";
        break;

    case "10200":
        refinement = "Support1";
        break;

    case "10001":
        refinement = "Support2";
        break;

    default:
        break;
}

/*this is the code to fill in the custom search. The refinement was set above - either "Support", "Support1", or "Support2".*/
webSearch.setSiteRestriction('cseId', refinement);
......  

Однако в настоящее время мы переходим к инструменту CustomSearchControl, чтобы заменить устаревший WebSearch, но, по-видимому, я не смог найти какой-либо способ специально выбрать метку уточнения на основе значения оператора case switch.Здесь нужна немедленная помощь, и если есть соответствующие документы, на которые вы, ребята, можете указать, я буду очень признателен.Спасибо!:)

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

При использовании customSearchControl вы можете установить метку уточнения в опциях.Это

a) не ограничит другие уточнения в вашем поиске ключевыми словами, которые вы, возможно, добавили с помощью ('more:' + уточнение), а

b) также выделит уточнениевкладка, чтобы сообщить пользователю, что вы сделали от его имени.

var customSearchOptions =
    { 'defaultToRefinement' : 'refinement_label_name' };

  var customSearchControl =
    new google.search.CustomSearchControl('YOUR_CSE_ID', customSearchOptions);

Параметр defaultToRefinement упоминается в элементе пользовательского поиска Справочник по JavaScript API .

Ранее этот ответ был введен здесь .

1 голос
/ 28 мая 2011

Получил ответ.Добавлены следующие строки к коду:

var customSearchControl = new google.search.CustomSearchControl(cseId);
customSearchControl.setSearchStartingCallback(this, function(control, searcher, query) 
{
      searcher.setQueryAddition('more:' + refinement);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...