我想计算因大小限制的查询而返回的文档数。例如,我运行以下查询:
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.我查询后只返回了1个文档"来自" 8318。
在回复中,我不知道返回了多少文件。我想编写一个查询,以便返回的文档数也存在于某些字段中。也许有些方面可能会有所帮助,但我无法理解。请帮助。
答案 0 :(得分:9)
您的查询:
{
"query" : {
"match_all" : { }
},
=>意味着您询问所有数据
“size”:5,
=>您只想显示5个结果
“from”:8318
=>你从8318记录开始
ElasticSearch责任:
...
"hits" : {
"total" : 8319,
... =>弹性搜索告诉你他的索引中有8319个结果。
你问他所有的结果,你从8318开始。
8319 - 8318 = 1所以你有1个结果。
尝试删除from。
答案 1 :(得分:1)
查看文档,目前尚不清楚如何使查询返回 - 如果API确实支持它。如果您只想获得返回命中的计数,最简单的方法似乎是在解析响应后自己实际计算它们。