如何使elasticsearch数据与MySql保持同步?

时间:2016-08-28 11:51:58

标签: spring elasticsearch spring-data-elasticsearch

我正在使用 spring-data-jpa 将数据保存到 MySql ,我最近实施 spring-data-elasticsearch ,在INSERT上将数据插入ES(例如上传新照片)。

现在很明显,这只会在它变得陈旧之后不久插入初始数据。

instagram 为例:

  1. 您发布了一张照片
    • 照片(照片对象 - 描述,位置,标签)
    • 用户(发布的用户)
    • 不喜欢(0)
    • 没有评论(0)
  2. 所有这些数据都会插入 elasticsearch 中的 照片 索引下。当用户在照片上开始喜欢评论时,数据将变为陈旧

    我们如何解决这个问题?!

      

    我们是否会创建一个 cronjob / task ,它将通过 all   每隔X分钟将照片插入弹性搜索中   (这意味着删除 照片 的所有当前索引)?!这个   似乎需要很长时间才能使用大量资源!

    我们只是更新所有当前的elasticsearch索引,而不是再次插入所有数据吗?

    你为解决这个问题做了什么?

1 个答案:

答案 0 :(得分:3)

执行此操作的标准方法是在数据库中保留最后更新的列类型,并在发生更改时更新它。

您的索引器只需要从上次成功索引数据后查询数据库中的任何内容。

根据您的可靠性,您可能仍需要定期进行全面比较。