谷歌CSE-搜索参数

Google CSE - search parameter

本文关键字:参数 搜索 CSE- 谷歌      更新时间:2023-09-26

我正在将我的网站的搜索引擎更改为Google CSE。

我在我的网站上使用"s=term",并生成url作为/search/term.html

谷歌无法识别它。代码中必须更改什么?

var queryParamName='s';

 <div class="row-fluid sc-col row-dynamic-el" style="margin-bottom:40px;"><div class="row-fluid"><div id='cse' style='width: 100%;'>Loading</div></div>
<script src='//www.google.com/jsapi' type='text/javascript'></script>
<script type='text/javascript'>
google.load('search', '1', {language: 'pt', style: google.loader.themes.V2_DEFAULT});
google.setOnLoadCallback(function() {
var customSearchOptions = {};
var orderByOptions = {};
orderByOptions['keys'] = [{label: 'Relevance', key: ''} , {label: 'Date', key: 'date'}];
customSearchOptions['enableOrderBy'] = true;
customSearchOptions['orderByOptions'] = orderByOptions;
var customSearchControl = new google.search.CustomSearchControl('01111111111:111111111', customSearchOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.enableSearchResultsOnly();
options.setAutoComplete(true);
customSearchControl.draw('cse', options);
function parseParamsFromUrl() {
var params = {};
var parts = window.location.search.substr(1).split('&');
for (var i = 0; i < parts.length; i++) {
var keyValuePair = parts[i].split('=');
var key = decodeURIComponent(keyValuePair[0]);
params[key] = keyValuePair[1] ?
decodeURIComponent(keyValuePair[1].replace(/'+/g, ' ')) :
keyValuePair[1];
}
return params;
}
var urlParams = parseParamsFromUrl();
var queryParamName = 's';
if (urlParams[queryParamName]) {
customSearchControl.execute(urlParams[queryParamName]);
}
}, true);
</script>
</div>

我相信您使用的是V1代码,而不是默认的V2代码。

我不能评论V1,但对于V2代码,请访问谷歌cse控制面板中的外观部分,选择适当的布局并获得代码(V2)。我只使用结果布局,并制作了自己的自定义搜索框。以下是我如何设置自定义查询参数:

"搜索"框

我有divid和类标记的自定义css样式表:searchbox2、searchcont2和searchString2,您需要用样式表属性替换它们。自定义查询参数在form部分的name=s下定义。

<div class="row"><div class="col-sm-12">
<div id="searchbox2" style="margin:0 auto; display: table;">
<div class="searchcont2">
    <form role="search" method="get" action="https://www.example.com/search/">
        <input id="searchString2" name="s" placeholder=" Search" type="text">
    </form>
</div></div>
</div></div>

如果您使用其他搜索布局,即两页双列,您可以使用以下内容进行搜索,data-queryParameterName将采用自定义搜索查询项。

<div class="gcse-searchbox" data-resultsUrl="http://www.example.com/search/"

data newWindow="true"data queryParameterName="s">

对于HTML5页面,google cse要求将class属性设置为gcse-XXX,例如,div class="gcse-searchbox"否则搜索结果可能无法按预期加载。更多信息,请访问https://developers.google.com/custom-search/docs/element#html5

搜索结果

在定义的搜索页面上添加您的谷歌cse结果代码,例如。,https://www.example.com/search/并将<GOOGLE CSE CX ID>替换为您的cse cx id。与searchbox相同,HTML5页面应该具有正确的div类属性,例如,在以下情况下为<div class="gcse-searchresults-only"

<div class="row"><div class="col-sm-12">
<script>
  (function() {
    var cx = '<GOOGLE CSE CX ID>';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<div class="gcse-searchresults-only">
</div></div>

干杯!