ElasticSearch计数返回结果

Nab*_*tar 9 elasticsearch

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

curl -XGET http://localhost:9200/logs_-*/a_logs/_search?pretty=true -d '
{
"query" : {
    "match_all" : {  }
},
"size" : 5,
"from" : 8318
}'
Run Code Online (Sandbox Code Playgroud)

我得到:

{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 159,
"successful" : 159,
"failed" : 0
},
  "hits" : {
  "total" : 8319,
  "max_score" : 1.0,
  "hits" : [ {
....
Run Code Online (Sandbox Code Playgroud)

与我的查询匹配的文档总数是8319,但我获取的最大值为5.自从我查询"来自"8318以来,只返回了1个文档.

在回复中,我不知道返回了多少文档.我想编写一个查询,以便返回的文档数也存在于某些字段中.也许有些方面可能会有所帮助,但我无法理解.请帮助.

小智 9

您的查询 :

{
"query" : {
    "match_all" : {  }
},
Run Code Online (Sandbox Code Playgroud)

=>表示您询问所有数据

"大小":5,

=>您只想显示5个结果

"来自":8318

=>你从8318记录开始

ElasticSearch响应:

....

"hits" : {
  "total" : 8319,
Run Code Online (Sandbox Code Playgroud)

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

你问他所有的结果,你从8318开始.

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

尝试删除from.


enk*_*iv2 1

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