我想在我的论坛中添加 Google 自定义搜索引擎。能否请您建议在哪里以及如何将自定义搜索引擎代码添加到 Discourse?
Discourse 已经内置了功能强大的搜索功能。为什么还要添加 Google 自定义搜索引擎呢?
没错,我同意,Discourse 的搜索功能运行良好。我从未见过一个效果好的 Google 自定义搜索实现。即使想从中获得广告收入,我认为整体影响也是负面的。
我认为尝试一下并观察其对收入的影响并无不妥。如果效果不佳,我们随时可以切换回来。但我想知道具体该如何实施。有人能帮我吗?
我无法想象要覆盖 Discourse 内置的搜索功能会是多么容易。它与 Discourse 应用程序的核心紧密集成,并在数据库层面运行。
就我所知,Google 自定义搜索只会为静态网站内容建立索引,效果会比现有的搜索差得多。更不用说如何将其集成到 Discourse 的用户界面(Ember 应用)中了:![]()
我真的不知道该如何实现它(或者为什么要这样做!)
您可能需要 构建一个主题组件,以替换或修改默认的搜索组件或部件,使其符合您的需求。
我对 Google 自定义搜索(Google Custom Search)并不特别熟悉,但据我了解,它只能搜索公开主题。假设情况确实如此,这意味着您的用户将无法搜索他们的私信、非公开类别中的主题、标签、用户或群组(我们已阻止对这些页面进行索引)等。如果有办法授予 Google 对您网站的管理员访问权限,或许能解决一些问题,但也会引发其他(隐私)问题。
我们支持 Algolia,详见 https://meta.discourse.org/t/add-algolia-search-to-your-discourse/73517。
我很确定它只包含也被 Google 索引的页面。对于用户生成内容(UGC)来说,这通常只占很小一部分。
没有必要,也不是一个好主意,去替换 Discourse 内部的搜索功能。
不过,添加额外的搜索功能(无论是 Google 还是其他)完全没有问题。
最佳做法是通过插件来实现,并为其设置独立的页面或路由。
我的建议是,@KranthiKiranGude,请保留 Discourse 的搜索功能原样不变,然后创建一个插件,为 GCS 设置一个独立的页面或路由。
顺便提一下,我们之前的 LAMP 论坛正是这样做的。
@neounix:我并不是要覆盖 Discourse 现有的搜索功能。我只是想添加一个小部件或插件。如果有人能建议如何在所有页面上添加自定义 HTML 组件(例如 Google 自定义搜索),那就太好了。我会保留 Discourse 现有的搜索功能不变。只是想了解一下对收入的影响。
根据之前在论坛应用中实施 GCSE 的经验,我建议两个插件:
-
用于 GCSE 搜索栏的主题组件。然后,您可以在网站的任何位置放置这些 GCSE 搜索栏。这相对简单。
-
用于创建 Discourse 页面(路由)以显示 GCSE 搜索结果的插件。这比显示搜索栏的主题组件要复杂一些;因此,您可能想在 Meta Marketplace 发帖,请一位优秀的 Discourse 插件开发者协助您。
如果您选择这条路线,请考虑将此插件分享给这里的社区。
谢谢!
下面的链接是一个很好的起点。您也可以在 meta 中搜索关键词“主题组件”。
另请参阅:
以及 https://github.com/topics/discourse-theme-component(示例代码):
https://github.com/topics/discourse-theme-component
祝您使用愉快!
我已在“编辑 CSS/HTML”部分中包含了 GCSE 脚本。但是,搜索框没有显示出来。我可以在页面源代码中看到该代码,但该元素在用户界面上不可见。
当 Discourse 搜索之前没有返回任何结果时,会出现一个标有“使用 Google 搜索您的网站”的按钮。
这并没有比直接打开 Google 搜索并已填入以下内容更有帮助:
“site:yoursitename.com ”