身安不如心安,屋宽不如心宽 。

ES7.x拿到total总量

Elasticsearch | 作者 elasticStack | 发布于2019年12月13日 | 阅读数:9346

1.es版本:7.X
2.问题描述:
7版本之前, es查询可以获取符合本次查询的总记录数total, 但是升级到7之后返回的结构变为了:
"total" : {
"value" : 10000,
"relation" : "gte"
}
value最大为10000, 但是我需要total的真实数量, 有没有什么办法?
已邀请:

core_wzw - 某AILab搜索技术负责人

赞同来自: elasticStack

新版本es对于10000以上的查询结果只显示10000,不会显示准确的数量。这个是通过track_total_hits控制的,设置为true的时候就是获取准确的结果数,也可以设置为int类型的数字来代表具体阈值,超过阈值将只显示阈值的数量

GET twitter/_search
{
"track_total_hits": true,
"query": {
"match" : {
"message" : "Elasticsearch"
}
}
}

God_lockin

赞同来自: elasticStack

在你request body里加个参数就是
 
{
"track_total_hits": true,
"query":{}
}

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

"track_total_hits": true, 正解。
如果不做限制,默认有用户返回上百万数据,与Elastic 追求快的理念不一致。

要回复问题请先登录注册