将Elasticsearch与Mysql同步的最佳方法

时间:2016-08-04 06:42:35

标签: elasticsearch spring-data-elasticsearch

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

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

db表和elasticsearch索引都有相同的数据,删除和更新操作我使用相同的概念,在elasticsearch和db表上执行更改操作,它工作正常。

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

或者是否有最好的方法可以使我们的弹性搜索索引与db保持同步。我使用了logstash但是删除的实体呢

1 个答案:

答案 0 :(得分:1)

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

在你的地方,我将创建一个cronjob / batch(触发器取决于更新的数据量以及索引更新的重要性) 并且此作业将具有日志执行状态

您将清楚了解您的索引并且没有遗漏数据

对于索引,你可以使用全指数模式& UPDATE索引模式(您应该在表上添加更新日期)

索引策略你有两个阶段,你可以选择TWO_PHASES:你需要一个主人和一个人。奴隶==>在master上执行索引时,slave会响应请求,当索引结束时,你同步DIRECT_MODE:drop index&创造新的