找到问题的解决办法了么?

关于get和count操作

Elasticsearch | 作者 Charele | 发布于2023年07月11日 | 阅读数:1247

我们知道get xxx/_doc/yyy 可以查询一个文档,
_count可以查询一个索引中的文档数量
 
问题1是:它们执行是ES中的查询操作吗?
 
问题2:它们执行的是Lucene中的查询操作吗?
 下面是Lucene中查询的一个API(来自IndexSearcher类)
111.PNG
已邀请:

charlesfang

赞同来自: Charele

本质上都是查询操作。
get 没有执行search操作,_id字段在lucene中PostingEnum获取到doc_id再读取_source,get还支持实时获取(realtime=true),试着先从translog中获取。
count执行了search操作。

Charele - Cisco4321

赞同来自:

有两层意思,
1从ES层面来看,是不是search,
2 从Lucene层面来看,是不是search
你确定get操作,没有执行Lucene层面的search吗?
111.PNG

 

Charele - Cisco4321

赞同来自:

"get还支持实时获取(realtime=true),试着先从translog中获取",
我感觉你这个说法不一定对吧,
 
realtime=true,并不指示它一定从translog中获取,或者说会优先从translog中取,
 
只有在有版本值的情况下才会从translog中取
缺省refresh1秒一次的情况下,“translog中取出结果”很少出现
 

要回复问题请先登录注册