【问题标题】:Putting records into the Elasticsearch index before the relational database在关系数据库之前将记录放入 Elasticsearch 索引
【发布时间】:2014-03-25 11:41:44
【问题描述】:

我有一个应用程序,它使用 RSS 提要并通过执行以下步骤使其可搜索:

  1. 从供稿 URL 中提取文章
  2. 将该数据存储在关系数据库中
  3. 在 Elasticsearch 中为数据编制索引

我想反转这个过程,以便我可以使用the RSS River Elasticsearch plugin 从提要中提取数据。然而,这个插件直接与 Elasticsearch 集成,绕过了我的关系数据库(这对于依赖于每篇文章在数据库中的记录的应用程序的其他部分来说是个问题)。

我如何让 Elasticsearch 在新文章被索引(和取消索引)时通知数据库?

编辑

目前我正在使用 Ruby on Rails 4 和 PostgreSQL 数据库。 RSS 提要在后台使用Sidekiq 获取以管理作业。它们直接进入 PG,然后由 Elasticsearch 索引。我正在使用Chewy 提供到 ES 索引的接口。它不支持我正在寻找的回调(没有 Ruby 库会做 afaik?)。

搜索查询 ES 以查找匹配项,然后从 PG 加载记录以显示结果。

【问题讨论】:

  • 您能否提供有关所使用技术的更多信息?您使用哪种语言进行实施?哪个dbms?原因是例如使用 django-haystack 您可以将所有数据索引到普通数据库中,它会负责更新或删除文档。
  • 已编辑问题,包含有关堆栈的更多详细信息。

标签: rss elasticsearch elasticsearch-plugin


【解决方案1】:

听起来您正在寻找this feature request 中描述的那种通知/触发功能。在没有该功能的情况下,我认为用户“cravergara”在该线程中建议的方法是您最好的选择 - 也就是说,您可以更改 RSS River Elasticsearch 插件,以便在文章被索引时更新您的数据库。

这将处理索引要求。要同步取消索引,您应该确保删除 Elasticsearch 文档的任何代码也会删除相应的数据库记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2022-01-09
    • 2014-07-23
    相关资源
    最近更新 更多