从es的某个版本开始,es返回的结果总数不一定是精准的,也有可能是个大约数。
返回的 hits 下的 total 中一般可以看到:
total:{
value: 10000,
relation: gte
}
如果返回的 relation 不是 eq ,则说明是个大约数,如上面的例是gte(grater then equals,即大于等于),结果总数大于等于1w条,只是返回了一个模糊数字为1w。
如果希望返回精准的数字,则使用 track_total_hits为true:
POST index_name/_search
{
track_total_hits: true
}
此时,返回的结果是精准的,不再取大约数。(取大约数是为了减少不必要的统计,以提高性能,如果无必要,可以不需要精准统计)
本篇完,还有疑问?留下评论吧