弹性搜索无法仅获得匹配数

时间:2018-11-29 15:20:37

标签: elasticsearch

我使用_msearch api将多个查询发送到Elastic。 我只需要知道每个查询产生了多少次匹配。 据我了解,您可以通过将size参数设置为“ 0”来仅获取计数。但是,我仍然获得所有找到的文档的结果。这是我的查询:

{"index":"myindex","type":"things","from":0,,"size":0}
{"query":{"bool":{"must":[{"match_all":{}}],"must_not":[],{"match": 
{"firstSearch":true}}]}}}, "size" : 0}
{"index":"myindex","type":"things","from":0,,"size":0}
{"query":{"bool":{"must":[{"match_all":{}}],"must_not":[],{"match": 
{"secondSearch":true}}]}}}, "size" : 0}

我正在使用curl以这种方式获取结果:

curl -H "Content-Type: application/x-ndjson" -XGET localhost:9200/_msearch?pretty=1 --data-binary "@requests"; echo

2 个答案:

答案 0 :(得分:2)

将大小设置为零表示您正在要求Elasticsearch返回所有满足查询条件的文档。

您可以通过发送“ _source”为false来让Elasticsearch知道您不需要文档。

示例:

{
  "query": {},
  "_source": false,
}

答案 1 :(得分:0)

您可以使用

GET /indexname/type/_count? { "query": { "match_all": {} } }

请阅读更多文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-count.html