如何触发特定的Google自定义搜索引擎优化标签?

时间:2011-05-27 16:01:25

标签: google-custom-search

目前,我们的组织正在使用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语句的值专门选择细化标签。这里需要立即的帮助,如果有一个相关的文档,你们可以指出我将非常感激。谢谢! :)

2 个答案:

答案 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);
});