Discourse Algolia 搜索

||||
-|-|
:discourse2: | 摘要 | Discourse Algolia Search 将 Algolia 与 Discourse 搜索功能集成。
:hammer_and_wrench: | 仓库链接 | https://github.com/discourse/discourse-algolia
:open_book: | 安装指南 | 如何在 Discourse 中安装插件

功能

我最近创建了一个插件,它使用 Algolia 对主题、帖子、用户和标签进行索引,并将它们组合成一个多类别的自动补全搜索。以下是其工作原理的 GIF 演示:

你可以在 GitHub 上的 algolia/discourse-algolia 找到该仓库,其中包含完整的安装说明。

插件配置只需填写几个字段即可。对象保存后,索引任务会被放入作业队列中。注意:你需要 创建一个 Algolia 账户,该账户在 10,000 条记录以内是免费的。

配置

:raising_hand_woman: 常见问题解答

问:这会替换默认的 Discourse 搜索吗?
答:只有在你希望它替换时才会如此,而且目前仅针对标题栏中的自动补全功能。通过在不选择搜索结果的情况下按回车键,或使用自动补全页脚中的“高级搜索”链接,仍然可以访问完整的搜索页面。我说“只有在你希望它替换时”是因为你可以启用对 Algolia 的索引,但不会影响 UI 或现有的 Discourse 搜索——这就是为什么插件设置中有两个复选框。如果你只是进行索引,可以在你的 Algolia 仪表板中搜索数据以查看其运行情况。

问:我必须付费才能使用此插件吗?
答:这取决于你的数据量。如果你有少于 1,000 条帖子,你应该符合 Algolia 的免费社区计划,该计划提供 10,000 条记录。一个好的经验法则是,每篇帖子需要 10 条 Algolia 记录,因为帖子被拆分为段落大小的块以实现最佳的相关性和速度。当然,具体情况可能有所不同(YMMV)。如果你想使用此插件但对成本有顾虑,请给我 发送电子邮件,我会看看我们能做些什么。如果你是开源项目或非营利组织,你可能有资格获得更高的限额,只需填写此表格并提及 Discourse 即可

更新日志

2022.11.02

已推送 PR

  • 将 algoliasearch.js 更新到 4.14.2
  • 将 autocomplete.js 更新到 1.7.1

2020.09.08

已向 GitHub - discourse/discourse-algolia: A plugin for indexing and searching your Discourse with Algolia · GitHub 推送了 8 次提交

  • 这应该能修复在多次页面加载后搜索框停止工作的问题。:warning: 注意:插件需要 Discourse 的最新版本才能工作

  • 插件现在使用 Discourse 的 scss 变量,并且现在可以在深色模式下正确工作

  • 修复了一个用户搜索导致跳转到 /users 而不是 /u 并导致 404 错误的问题。:warning: 注意:你需要重新索引用户才能使其正常工作 rake algolia:reindex_users

  • 修复了搜索框的对齐问题

  • 应用了各种编码标准

  • 移除了部分 jquery 的使用

  • 搜索框应该稍微快一些,因为它现在与渲染绑定,而不是任意的 100ms 等待(也移除了禁止的 setTimeout 使用)


待办事项

pr-welcome 以下任务:

  • 更新 algoliasearch (ruby)

这将确保我们将来不会被弃用,并允许导入库,而不是将其放在全局命名空间中。

61 个赞

该插件似乎会自动重新索引。有人能告诉我它多久进行一次吗?我没有看到任何相关文档。
谢谢

1 个赞

除非社区里有人知道答案,否则可能要等到下周才能从 Discourse 团队那里得到答复。

我看到该插件每 5 分钟运行一次作业来处理队列中要索引的所有对象(帖子、主题、用户、标签):https://github.com/discourse/discourse-algolia/blob/main/app/jobs/scheduled/update_indexes.rb。但我不太清楚是什么原因导致对象被重新索引。

如果你有机会回复,我很想知道你看到了什么让你觉得内容被重新索引了。

1 个赞

您好 Simon,感谢您的回复!我创建了一个测试帖子。我们有一个 Algolia 账户。所以第二天我登录并搜索了该帖子,在 Algolia 管理后台中它显示出来了。我相信我在发布后立即检查时,在 Algolia 中没有看到该帖子。但我明白在索引过程中肯定会有一些延迟。5 分钟已经很不错了。我可以再发一个帖子,等待 10 分钟看看它是否在那里。我感到惊讶的是,文档中对此没有任何提及。

2 个赞

我刚开始测试这个插件。有几个问题:

  1. 当我搜索关键词时,Algolia 只列出同一主题的不同段落,而不是像 Discourse 那样显示不同的主题。除非该主题是最终答案,否则这种方法对最终用户来说似乎更具限制性和不准确性。这种行为是否应该可配置?

  2. 该插件在 Algolia 应用中创建了 3 个索引,分别对应 poststagsusers 类型。如何让该插件包含 Algolia 应用中可用的其他索引?用例:通过 Algolia 进行多站点搜索。

最后一个更像是功能请求,但我坚信第一个需要成为可配置选项,才能获得可用的搜索结果。

1 个赞

您好,

自动完成搜索在移动设备上也能使用吗?我在 Algolia 论坛上看不到它在移动设备上运行。

嘿,

Algolia 社区已不再可用,他们已迁移到 Discord

告别我们的 Discourse 论坛(以及接下来的内容)- Algolia 博客 | Algolia

此外,用户体验设计已更改。看起来更现代了。是否有计划更新插件?

并且是否可以将“登录”和“注册”按钮移动到右角(默认情况下),并将搜索栏居中,就像在“Header Search”主题组件中一样?
direita

2 个赞

目前还没有具体计划,只有极少数客户在使用此插件

3 个赞