Elasticsearch 刷大量数据的时候,之前存在的数据,这时候更新,为什么不能查询到。

发布于 2022-09-12 00:26:56 字数 78 浏览 15 评论 0

之前的数据找不到是不是因为它会把之前的数据删掉,然后再建立新的数据索引,这时候如果新数据的索引还没建立,那它就会查询不到。是这样的数据流程吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

川水往事 2022-09-19 00:26:56

执行更新操作时,elasticsearch会将相关的doc文档标识为delete状态,不是立马清除,
更新时,会检索得到具体doc的version号,并且传递到重建索引的index请求,此时如果另一个进程修改了处于检索和重建索引步骤之间的文档,那么version可能会不匹配,更新请求有可能失败。

重新写入的时候,能否立即搜索到和相关refresh_interval配置也有关系,默认为1s,这也是es为什么说是准实时搜索的原因。
结语:
es的doc是不可变的,不能被修改,只能被替换。
希望能帮到你

-------来自侠梦的开发笔记,一个热衷于java、微服务架构、消息队列、elasticsearch 等领域的号主。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文