我正在使用 spring-data-jpa 将数据保存到 MySql ,我最近实施 spring-data-elasticsearch ,在INSERT上将数据插入ES(例如上传新照片)。
现在很明显,这只会在它变得陈旧之后不久插入初始数据。
以 instagram 为例:
所有这些数据都会插入 elasticsearch 中的 照片 索引下。当用户在照片上开始喜欢和评论时,数据将变为陈旧。
我们如何解决这个问题?!
我们是否会创建一个 cronjob / task ,它将通过 all 每隔X分钟将照片插入弹性搜索中 (这意味着删除 照片 的所有当前索引)?!这个 似乎需要很长时间才能使用大量资源!
我们只是更新所有当前的elasticsearch索引,而不是再次插入所有数据吗?
你为解决这个问题做了什么?
答案 0 :(得分:3)
执行此操作的标准方法是在数据库中保留最后更新的列类型,并在发生更改时更新它。
您的索引器只需要从上次成功索引数据后查询数据库中的任何内容。
根据您的可靠性,您可能仍需要定期进行全面比较。