在chrome中为自定义搜索引擎添加建议URL

fwzugrvs  于 2023-02-17  发布在  Go
关注(0)|答案(2)|浏览(203)

我有一个本地搜索引擎,由elasticsearch和API支持,我希望能够从GoogleChrome搜索这些文档(构建可从谷歌,而不是 chrome )直接。在这个用例中,我将使用 chrome 与这个搜索引擎,所以我不想使用Omnibox关键字搜索API。我想得到与在chrome中选择默认搜索引擎相同的行为。
1.开始在OmniBox中输入,它会显示一个建议列表。
1.点击回车键,进入搜索结果页面
我在设置下添加了一个新的搜索引擎,并提供了搜索API的URL,使#2工作。
我的服务器暴露的两个网址是:

  1. http://localhost:3000/complete?query=my(这将返回我希望在OmniBox中键入时显示的搜索建议列表)。
  2. http://localhost:3000/results?query=my+sample+query(这将实际的搜索结果返回为网页,这是工作)
    我尝试过的事情:
    1.添加了使用window.externals.AddSearchProvider和OpenSearchDescription.xml链接的搜索引擎。XML也有建议网址。
    1.尝试用OmniBox编写一个后台扩展,但它不允许我不使用关键字进行搜索
    我搜索了Chromium找到了这个JSON文件
    https://code.google.com/p/chromium/codesearch#chromium/src/components/search_engines/prepopulated_engines.json&q=prepopulated&sq=package:chromium&l=1
    但我不知道我该如何使用它(或者在Chrome的官方版本中是否有可能这样做)。
chhkpiq4

chhkpiq41#

我终于找到了解决办法。
opensearch.xml文档引用可以用作HTML页面head部分的链接,它包含两个URL方案,一个用于搜索结果,另一个用于建议。
详情可在此处找到:Opensearch Document Specs.
当我更新了我的index.html并在Chrome中打开页面时,Chrome自动添加了一个新的搜索引擎。它没有显示在 * 设置〉管理搜索引擎 * 下有一个建议URL。
接下来,我选择了我的引擎作为默认搜索引擎,点击 * 设为默认 *,完成了!现在我可以看到所有的搜索建议,在omnibox没有使用关键字。

a0x5cqrl

a0x5cqrl2#

Chrome扩展程序有一个Setting Overrides机制,这个机制并不广为人知,它可以实现你想要的,但是:

  • 至少根据文档,它只能在Windows和Mac上工作。
  • 除非您可以在网站管理员工具中验证该站点,否则您将无法发布扩展。否则,您将无法进行解包安装。

相关问题