如何根据 MySQL 数据库中的更改更新 Elasticsearch 索引?

问题描述 投票:0回答:1

我正在从事 django 项目。我正在从数据库中执行查询,并根据数据库中的时间戳定期更新 Elasticsearch 索引。就像如果时间戳在过去一小时内,那么我查询这些对象并将其添加到 ES 索引中。

但是我在这个过程中遇到了一些问题。

  1. 在 django 中,我们执行 .update() 来更新数据库中的现有对象,但这不会更改时间戳,因此它不会出现在查询中,我无法更新 ES 索引。
  2. 此外,如果我使用查询删除数据库中的对象,我无法检查已删除的对象,然后我无法更新索引。

任何人都可以建议我解决这些问题或任何其他方式来更新索引。

mysql django elasticsearch django-orm
1个回答
0
投票

您是否考虑过将 Kafka 等消息队列与 Maxwell 等 CDC 工具结合使用? Maxwell 将监控您的 MySQL binlogs 并将 DML 命令引起的更改抛出到队列中的不同主题。您可以为每个表设置一个主题,然后编写消费逻辑(在您的情况下将 ES 索引与 MySQL 数据库同步)

© www.soinside.com 2019 - 2024. All rights reserved.