谷歌自定义搜索中的谷歌站内搜索框

6
我们希望使用Google自定义搜索实现Google站内搜索框。在Google 文档中,我发现我们需要包含以下代码以启用站内搜索框。
    <script type="application/ld+json">
{
   "@context": "http://schema.org",
   "@type": "WebSite",
   "url": "https://www.example-petstore.com/",
   "potentialAction": {
     "@type": "SearchAction",
     "target": "https://query.example-petstore.com/search?q={search_term_string}",
     "query-input": "required name=search_term_string"
   }
}
</script>

但是我们卡在了上述属性中的“目标”节点。由于我们没有自己的搜索页面,我们想使用Google定制搜索,那么我应该在这个“目标”节点中填什么值。
我们已经为我们的网站创建了一个Google定制搜索引擎,并在那里找到了下面的代码。
<script>
  (function() {
    var cx = '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>
<gcse:search></gcse:search>

我们希望实现类似于 MashableImdb 的站内搜索框。

enter image description here

请建议如何在站内搜索框代码中指向Google自定义搜索。谢谢。

也许这个链接能帮到你。 - Shishdem
感谢@Shishdem的回复。但是这个链接也指向了同样的Google文档 :( - pankaj
有其他建议吗? - pankaj
不是我的问题。在我的回答中,我解释了什么是可能的,什么是不可能的 - 显然你需要自己深入文档。或者实现一个搜索页面 - 你可以使用谷歌自定义搜索。 - Shishdem
4个回答

1
唯一的解决方案:
你需要在自己的网站上建立一个搜索页面。对于“target”参数,你需要在你的网站上进行搜索,并将该URL替换为你用于搜索的搜索词语“{search_term_string}”。
如果你在自己的网站上使用了自定义的Google搜索,你应该能够使用该链接作为“target”属性。
原因是Google不提供搜索功能,将会直接将用户发送到你网站的搜索页面。
来源:

但是像mashable.com、imdb.com、makemytrip.com这样的网站没有自己的搜索页面,但在Google SERP中仍然可以看到站内链接搜索框。在站内链接搜索框中搜索时,它会附加在查询字符串中的"site:mashable.com",并跳转到Google SERP页面。 - pankaj
它们都有自己的搜索页面。例如,IMDB:http://www.imdb.com/find?ref_=nv_sr_fn&q={search_term_string} - Shishdem
嗯……IMDb有自己的搜索引擎,但这个搜索页面没有从站点链接搜索框映射过来。它再次落在Google SERP上。 IMDb必须没有在“target”节点中提供自己的搜索页面。 - pankaj

1

请添加更多细节以扩展您的答案,例如工作代码或文档引用。 - Community
1
此功能“Sitelinks”在CSE引擎中不可用。请查看以下文档以获取指导: https://developers.google.com/search/docs/data-types/sitelinks-searchbox - Thomas Kujawa

1
Shishdem的链接没有明确表明目标对象的作用,经过一些猜测后,这样可以起作用。
https://example.com/index.html?q={search_term_string}

对于包含在 index.html 页面中的搜索框

如果您的搜索框位于网站地图页面上,请使用

https://examples.com/sitemap.html?q={search_term_string}

我之所以能够找到这个,是因为404页面包含了搜索框,所以返回了404然后出现了结果,于是我调整了代码。
这会忽略页面上的其他内容,似乎得出了正确的结果,所以应该适用于JSON-LD(或者如果您喜欢,可以使用微数据)。 JSON-LD可能更好,因为谷歌推荐它,但声明微数据也被接受。参考原问题文档中的链接。

不确定站点链接搜索框是否会在此目标中显示(因为我知道Google需要时间来决定是否显示它),但该目标链接似乎对我有效。链接直接进入Google自定义搜索。供其他人参考,如果您网站的主页不需要index.html,则可以省略它。因此,它只需为https://www.example.com/?q={search_term_string} - train

0

您需要使用Google CSE WordPress插件: https://wordpress.org/plugins/google-cse/

  1. 安装它。
  2. 启用自定义搜索API
  3. 生成API
  4. 使用您生成的API和自定义搜索引擎ID
  5. 在网站上找到内置的WordPress搜索

现在,您将能够使用SearchAction Shema.org标记(Sitelink搜索框)。

仅适用于WordPress。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接