Elasticsearch 刷大量数据的时候,之前存在的数据,这时候更新,为什么不能查询到。
之前的数据找不到是不是因为它会把之前的数据删掉,然后再建立新的数据索引,这时候如果新数据的索引还没建立,那它就会查询不到。是这样的数据流程吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
之前的数据找不到是不是因为它会把之前的数据删掉,然后再建立新的数据索引,这时候如果新数据的索引还没建立,那它就会查询不到。是这样的数据流程吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
执行更新操作时,elasticsearch会将相关的doc文档标识为delete状态,不是立马清除,
更新时,会检索得到具体doc的version号,并且传递到重建索引的index请求,此时如果另一个进程修改了处于检索和重建索引步骤之间的文档,那么version可能会不匹配,更新请求有可能失败。
重新写入的时候,能否立即搜索到和相关refresh_interval配置也有关系,默认为1s,这也是es为什么说是准实时搜索的原因。
结语:
es的doc是不可变的,不能被修改,只能被替换。
希望能帮到你
-------来自侠梦的开发笔记,一个热衷于java、微服务架构、消息队列、elasticsearch 等领域的号主。