放置后立即更新Elastic Search文档



如果我需要在添加文档后立即更新文档,我想得到关于如何处理文档可见性的建议。

我的代码将许多文档写入滚动索引中,几分钟后用updateByQuery更新它们,并添加其他信息(我使用updateByQuery,因为滚动索引可能在调用之间滚动(。在某些情况下,更新太快,文档不可见,因此无法更新。在这种情况下,最佳做法是什么?

  1. 是否继续重试更新,直到文档可见?我不确定需要多长时间,因为可见性可能取决于服务器CPU负载和碎片的大小
  2. 使用?wait_fo标志(在这种情况下,我不考虑性能影响,因为大多数更新都是在文档已经可见时完成的,所以没有必要只在少数情况下延迟所有更新
  3. Alway使用相同的id覆盖整个文档,因此最后一次更新将是最新的(但由于我使用滚动索引,我担心它可以创建两个具有相同id的文档,并且不会相互覆盖

您认为在这种情况下什么是最佳做法?

不幸的是,由于您的用例,这里没有神奇的解决方案

最好的选择是使用选项2-CCD_ 1。这会对性能产生影响,但你可以肯定的是,你的下一步操作是一致的

或者,您可以使用不同的体系结构。但这需要了解更多关于您的用例的信息,并且可能会引发另一个问题

最新更新