10

我想计算由于具有大小限制的查询而返回的文档数。例如,我运行以下查询:

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 个文档。

在响应中,我不知道返回了多少文档。我想编写一个查询,以便返回的文档数也出现在某个字段中。也许某些方面可能会有所帮助,但我无法弄清楚。请帮忙。

4

2 回答 2

9

您的查询 :

{
"query" : {
    "match_all" : {  }
},

=> 表示您询问所有数据

“大小”:5,

=> 您只想显示 5 个结果

“来自”:8318

=> 你从 8318 条记录开始

ElasticSearch 响应:

……

"hits" : {
  "total" : 8319,

... => 弹性搜索告诉你,他的索引中有 8319 个结果。

你问他所有的结果,然后你从 8318 开始。

8319 - 8318 = 1 所以你有 1 个结果。

尝试删除 from。

于 2013-11-06T07:02:39.767 回答
1

查看文档,不清楚如何使查询返回这个——如果 API 确实支持它。如果您只想计算返回的命中数,最简单的方法似乎是在解析响应后自己实际计算它们。

于 2013-05-15T13:42:53.650 回答