对弹性搜索索引进行同步更新是一个好主意

时间:2017-07-27 14:14:35

标签: elasticsearch indexing amazon-s3 amazon-elasticsearch

我有一个用例,后端存储是S3,我们希望通过弹性搜索为搜索提供支持。一种选择是同时更新S3和索引。

我见过的大多数用例都是异步更新索引。同步更新的一个明显缺点是在S3更新成功但索引更新失败时处理故障情况。

如果延迟不是问题,有什么反对同步更新的要点?

1 个答案:

答案 0 :(得分:0)

如果您首先索引然后存储,并且存储失败,那么您需要删除索引文档(否则,某人将能够在搜索中找到它,并且可能会产生错误的印象,如果它不存在)。如果存储故障相对较少,那么它可能会付出代价,但您需要找到它。

另一方面,如果你存储和索引的对象是并行处理的,那么你实际上会得到相同的效果:当存储一个对象时,另一个被索引,同时仍然除非存储对象,否则确保对象不可搜索。这样,您就不需要回滚在索引上执行的任何操作。