我在我的spring web mvc项目(spring-data-elasticsearch)中使用了elasticsearch,并与数据库同步(MySQL)。
我正在从我的应用程序索引文档,如果有任何新的实体要同时添加到数据库表中,从服务层,我请求索引这个文档到elasticsearch也。
db表和elasticsearch索引都有相同的数据,对于删除和更新操作,我使用相同的概念,在elasticsearch和db表上执行更改操作,它工作得很好。
现在我想知道这种方法的disadvantages是什么。
或者有什么最好的方法可以让我们的elasticsearch索引从db更新到最新。我使用了logstash,但是删除的实体怎么办?
发布于 2017-10-13 23:41:52
同步索引的缺点是,如果在创建索引数据时出现错误,则不会重试。
我将在您的位置创建一个cronjob/批处理(对于触发器,它取决于更新了多少数据以及更新索引的重要性),并且此作业将具有日志的执行状态
您将清楚地了解您的索引,并且不会丢失数据
对于索引,您可以使用完整索引模式和更新索引模式(您应该在表中添加更新日期)
索引策略你有两个阶段,你可以选择TWO_PHASES :你需要一个主&从索引,当在主上执行索引时,从将响应请求,当索引结束时,你同步DIRECT_MODE :删除索引并创建一个新的索引
https://stackoverflow.com/questions/38760198
复制相似问题