目前,我们的组织正在使用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,但显然我找不到任何方法根据switch case语句的值专门选择细化标签。这里需要立即的帮助,如果有一个相关的文档,你们可以指出我将非常感激。谢谢! :)
答案 0 :(得分:3)
使用customSearchControl时,您可以在选项中设置细化标签。 这将
a)不要将搜索中的其他优化限制为您的关键字 可能已添加('more:'+ refinement)和
b)也强调 细化选项卡,告诉用户您代表他们做了什么。
var customSearchOptions =
{ 'defaultToRefinement' : 'refinement_label_name' };
var customSearchControl =
new google.search.CustomSearchControl('YOUR_CSE_ID', customSearchOptions);
自定义搜索元素JavaScript API Reference中提到了defaultToRefinement参数。
以前,这个答案是here引入的。
答案 1 :(得分:1)
得到了答案。将以下行添加到代码中:
var customSearchControl = new google.search.CustomSearchControl(cseId);
customSearchControl.setSearchStartingCallback(this, function(control, searcher, query)
{
searcher.setQueryAddition('more:' + refinement);
});