2

我有自定义谷歌搜索的问题。我从自定义谷歌搜索引擎复制代码并将其粘贴到我的项目中。对于一个域,它可以工作并返回结果,但对于另一个子域,它不能工作并且不返回任何结果

有谁知道为什么?

一页只有一个带有代码的搜索框:

<div  id="cse-search-form"  dir="<%= MyBase.UserPreferences.DisplayDir%>" style="width:500px;"></div>
                           <script>
                               (function () {
                                   var cx = '017015442779235202717:g8u07nzbkmi';
                                   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>
                        <gcse:searchbox-only resultsUrl="SearchResults.aspx"></gcse:searchbox-only>

结果显示在另一个页面上,代码如下:

<div>
    <script>
        (function () {
            var cx = '017015442779235202717:g8u07nzbkmi';
            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>
    <gcse:searchresults-only></gcse:searchresults-only>

此外,我尝试使用以下代码将搜索框和结果放在同一页面上:

 <div>Compact Layout Demo</div>
 <div id="cse-search-form" style="width: 500px;">Loading</div>

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
   google.load('search', '1', { language: 'en' });
   google.setOnLoadCallback(function () {
   var customSearchControl = new google.search.CustomSearchControl   ('017015442779235202717:g8u07nzbkmi');
    customSearchControl.setResultSetSize(google.search.Search.SMALL_CSE_RESULTSET);
    customSearchControl.draw('cse-search-form');

    // var options = new google.search.DrawOptions();
    // options.enableSearchboxOnly("http://www.tiemponeto.com/All/searchresults3.asp");
    // customSearchControl.draw('cse-search-form', options)
}, true);

搜索仍然无法正常工作,也没有看到结果

请问,谁能帮帮我?

4

2 回答 2

0

您的搜索引擎的公共 url 会带来结果,例如查询“office”: https ://www.google.com/cse/publicurl?cx=017015442779235202717:g8u07nzbkmi

这意味着发动机正常工作。

首先,检查 CSE 控制面板的“外观”选项卡。您试图让搜索框和搜索结果分别显示,因此您需要选择“两页”选项(一页带有搜索框,第二页带有结果)并保存新配置。

其次,确保您的 SearchResults.aspx 脚本在将用户重定向到结果页面时附加了“q=”参数(例如 ?q=office)。该页面上的元素从 url 读取此参数并显示包含的查询(“office”)的结果。

于 2013-09-11T12:36:12.853 回答
0

您正在搜索的域的名称在自定义搜索引擎选项中设置。您需要创建第二个自定义搜索引擎,在“要搜索的站点”标题下进行设置并设置域名。然后,您将代码用于您的子域的第二个搜索引擎。

第二个搜索引擎的代码会略有不同,这一行将有一个不同的搜索引擎 ID:

var cx = '017015442779235202717:g8u07nzbkmi';

您可以告诉第一个搜索引擎受到限制并且没有搜索所有互联网,因为office返回结果但其他术语不返回,例如chair

于 2015-08-01T17:55:14.157 回答