谷歌CSE-搜索参数
Google CSE - search parameter
我正在将我的网站的搜索引擎更改为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)。我只使用结果布局,并制作了自己的自定义搜索框。以下是我如何设置自定义查询参数:
"搜索"框
我有
div
id和类标记的自定义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>
干杯!
- 谷歌CSE-搜索参数
- 如何让typeahead在我的搜索栏中填充自定义参数
- jQuery脚本,它搜索现有的查询参数并且不添加“"如果存在
- 为什么字符串搜索的参数表现得像Regex
- 用于Cordova应用程序的Javascript SQLite-使用参数搜索,其中字符串包含子字符串大小写insenst
- 如何在 angularjs 中存储和检索搜索参数
- JavaScript 位置搜索 URL 中的多个查询参数
- 谷歌自定义搜索 - 从网址参数手动加载/执行
- 为我的搜索框创建参数化 URL
- 谷歌地图API v3放置搜索 - 将另一个参数传递给回调函数
- jQuery getScript 函数添加了搜索参数,并抛出 404 错误
- 在 AngularJS 中搜索表单和 URL 参数
- location.href + 指定搜索参数
- 将参数传递给elasticsearch javascript api搜索请求的回调函数
- AngularJS-自动向URL添加哈希标签-覆盖搜索参数
- 天气API,如何组合搜索参数以获得更详细的位置(城市、州、国家等),以防止位置混淆
- 将状态添加到特定搜索参数的历史记录中
- 在集合中搜索具有类似属性和搜索参数的模型
- 当输入参数长度=8时开始搜索
- 在Sequelize.js中使用动态搜索参数