如何在 Discourse 中添加 Google 自定义搜索引擎

我想在我的论坛中添加 Google 自定义搜索引擎。能否请您建议在哪里以及如何将自定义搜索引擎代码添加到 Discourse?

Discourse 已经内置了功能强大的搜索功能。为什么还要添加 Google 自定义搜索引擎呢?

1 个赞

没错,我同意,Discourse 的搜索功能运行良好。我从未见过一个效果好的 Google 自定义搜索实现。即使想从中获得广告收入,我认为整体影响也是负面的。

我认为尝试一下并观察其对收入的影响并无不妥。如果效果不佳,我们随时可以切换回来。但我想知道具体该如何实施。有人能帮我吗?

我无法想象要覆盖 Discourse 内置的搜索功能会是多么容易。它与 Discourse 应用程序的核心紧密集成,并在数据库层面运行。

就我所知,Google 自定义搜索只会为静态网站内容建立索引,效果会比现有的搜索差得多。更不用说如何将其集成到 Discourse 的用户界面(Ember 应用)中了::person_bowing:

我真的不知道该如何实现它(或者为什么要这样做!)

1 个赞

您可能需要 构建一个主题组件,以替换或修改默认的搜索组件或部件,使其符合您的需求。

1 个赞

我对 Google 自定义搜索(Google Custom Search)并不特别熟悉,但据我了解,它只能搜索公开主题。假设情况确实如此,这意味着您的用户将无法搜索他们的私信、非公开类别中的主题、标签、用户或群组(我们已阻止对这些页面进行索引)等。如果有办法授予 Google 对您网站的管理员访问权限,或许能解决一些问题,但也会引发其他(隐私)问题。

我们支持 Algolia,详见 https://meta.discourse.org/t/add-algolia-search-to-your-discourse/73517。

4 个赞

我很确定它只包含也被 Google 索引的页面。对于用户生成内容(UGC)来说,这通常只占很小一部分。

没有必要,也不是一个好主意,去替换 Discourse 内部的搜索功能。

不过,添加额外的搜索功能(无论是 Google 还是其他)完全没有问题。

最佳做法是通过插件来实现,并为其设置独立的页面或路由。

我的建议是,@KranthiKiranGude,请保留 Discourse 的搜索功能原样不变,然后创建一个插件,为 GCS 设置一个独立的页面或路由。

顺便提一下,我们之前的 LAMP 论坛正是这样做的。

2 个赞

@neounix:我并不是要覆盖 Discourse 现有的搜索功能。我只是想添加一个小部件或插件。如果有人能建议如何在所有页面上添加自定义 HTML 组件(例如 Google 自定义搜索),那就太好了。我会保留 Discourse 现有的搜索功能不变。只是想了解一下对收入的影响。

1 个赞

你好 @KranthiKiranGude

根据之前在论坛应用中实施 GCSE 的经验,我建议两个插件:

  1. 用于 GCSE 搜索栏的主题组件。然后,您可以在网站的任何位置放置这些 GCSE 搜索栏。这相对简单。

  2. 用于创建 Discourse 页面(路由)以显示 GCSE 搜索结果的插件。这比显示搜索栏的主题组件要复杂一些;因此,您可能想在 Meta Marketplace 发帖,请一位优秀的 Discourse 插件开发者协助您。

如果您选择这条路线,请考虑将此插件分享给这里的社区。

谢谢!

2 个赞

你好 @neounix

能否请你帮我提供你建议 1 的示例代码片段?我尝试将 GCSE 代码粘贴到主题的 部分,但在预览时它不可见。

谢谢。

@KranthiKiranGude

下面的链接是一个很好的起点。您也可以在 meta 中搜索关键词“主题组件”。

另请参阅:

以及 https://github.com/topics/discourse-theme-component(示例代码):

https://github.com/topics/discourse-theme-component

祝您使用愉快!

我已在“编辑 CSS/HTML”部分中包含了 GCSE 脚本。但是,搜索框没有显示出来。我可以在页面源代码中看到该代码,但该元素在用户界面上不可见。

当 Discourse 搜索之前没有返回任何结果时,会出现一个标有“使用 Google 搜索您的网站”的按钮。
这并没有比直接打开 Google 搜索并已填入以下内容更有帮助:

“site:yoursitename.com ”