将 Elasticsearch 与 Mysql 同步的最佳方式

Best way to synchronize Elasticsearch with Mysql

我在我的 spring web mvc 项目 (spring-data-elasticsearch) 中使用 elasticsearch 并与数据库 (MySQL) 同步。

我正在从我的应用程序索引文档,如果有任何新实体要同时添加到数据库 tables,从服务层,我也请求将此文档索引到 elasticsearch。

db tables 和 elasticsearch index 都有相同的数据,删除和更新操作我使用相同的概念,对 elasticsearch 和 db table 执行更改操作,它工作正常.

现在我想知道这种方法的disadvantages是什么。

或者有什么最好的方法可以使我们的 elasticsearch 索引从 db.我使用了 logstash,但是删除的实体呢

同步索引的缺点是如果在创建索引数据时出错,则不会重试。

我会在你那里创建一个 cronjob/batch(对于触发器,它取决于更新了多少数据以及索引更新的重要性) 并且此作业将具有日志

的执行状态

您将对您的索引有清晰的认识,不会丢失数据

对于索引,您可以使用完整索引模式和更新索引模式(您应该在表中添加更新日期)

索引策略你有两个阶段,你可以选择TWO_PHASES:你需要一个主从==>当在主服务器上执行索引时,从服务器将响应请求,当索引结束时你同步DIRECT_MODE : 删除索引并创建新索引