要不要也来分享分享一下啊

es6.5.4中update操作后是不是能够立即查询到文档的问题

Elasticsearch | 作者 alex_farm | 发布于2020年09月16日 | 阅读数:82

我们处理数据有两个场景,
1)场景一:数据插入es后,发送到kafka由其他服务处理后放回kafka(场景一这一步较快),我们拿到后对原来插入的文档进行更新操作,考虑到update中有get操作会进行refresh,后续又做了一次search请求查询更新后的数据,但有一定几率查不到数据。
2)场景二:数据插入es后,发送到kafka由其他服务处理后放回kafka(场景二这一步较慢),我们拿到后对原来插入的文档进行更新操作,考虑到update中有get操作会进行refresh,后续又做了一次search请求查询更新后的数据,稳定可以查到数据。

其实场景一和二在update操作后都是一个search请求,但为什么结果差距很大呢
已邀请:

God_lockin

赞同来自:

update 操作在flush之前其实是不能被检索的,es的默认flush_interval是1秒,如果你的插入~更新在1秒以内很大概率是不能重新获取到那条数据的
 
不知道你真实的使用场景是什么,但是用ES做这种类似数据校验的使用其实并不推荐

guoyanbiao520

赞同来自:

如果用get查询是可以的,不存在interval时间,就是直接查translog中的数据,而不是查段里的,但是这样只能根据ID去查询

要回复问题请先登录注册