簡體   English   中英

Google CSE-搜索參數

[英]Google CSE - search parameter

我正在將網站的搜索引擎更改為Google CSE。

我在我的網站上使用“ s = term”,並且還會將網址生成為/search/term.html

Google無法識別它。 代碼必須更改什么?

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代碼,請訪問google 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 resultsonly代碼在定義的搜索頁面,例如, https://www.example.com/search/和替換<GOOGLE CSE CX ID>與CSE CX ID。 與搜索框相同,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>

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM