【发布时间】:2023-03-26 10:21:02
【问题描述】:
我想计算由于有大小限制的查询而返回的文档数。例如,我运行以下查询:
curl -XGET http://localhost:9200/logs_-*/a_logs/_search?pretty=true -d '
{
"query" : {
"match_all" : { }
},
"size" : 5,
"from" : 8318
}'
我得到:
{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 159,
"successful" : 159,
"failed" : 0
},
"hits" : {
"total" : 8319,
"max_score" : 1.0,
"hits" : [ {
....
与我的查询匹配的文档总数为 8319,但我最多提取 5 个。因为我查询“来自”8318,所以只返回了 1 个文档。
在响应中,我不知道返回了多少文档。我想编写一个查询,以便返回的文档数也出现在某个字段中。也许某些方面可能会有所帮助,但我无法弄清楚。请帮忙。
【问题讨论】:
-
不能只统计客户端的 hits 数组中的对象个数吗?
-
这是一项昂贵的操作。在开始计数/处理单个对象之前,我想知道数字。
-
无法取回该信息。这个想法是,如果您已经解析了 json 响应,那么读取该数组的长度应该不是什么大问题,但是如果您有一个很大的 json 对象并且您使用拉解析器读取它,那么情况就完全不同了.
标签: elasticsearch