ElasticSearch:当hits = 0

时间:2016-12-03 21:16:10

标签: elasticsearch

请注意,以下示例是现实生活中用例的一个非常简化的版本,它是为了使问题易于阅读和指出。

我有以下文档结构:

{
   "date" : 1400500,
   "idc" : 1001,
   "name": "somebody",
}

我正在根据不同的值(“idc”和“date”范围)执行_msearch查询(一次多次搜索)
当ES找不到给定日期范围的任何文档时,它返回:

"hits":{  
    "total":0,
    "max_score":null,
    "hits":[  
    ]
}

但是,由于有N个结果,我无法分辨出这个结果的“idc”和“date”范围。
我希望响应在给定查询没有结果时具有“搜索”日期范围和“idc”。
例如,如果我正在搜索IDC = 1001的文档和1400100和1400200之间的日期,但是没有找到结果,则响应应该在响应正文中包含查询条件,如下所示:

"hits":{  
    "total":0,
    "max_score":null,
    "query": {
           "date": {
               "gt": 1400100,
               "lte": 1400200,
           }
           "idc": 1001,
       }
}

这样我可以告诉什么日期范围和“idc”组合没有结果。
请注意,上面的示例是现实生活中用例的一个非常简化的版本,它是为了使问题易于阅读和重点。

1 个答案:

答案 0 :(得分:1)

这是来自文档

  

多搜索API(_msearch)响应返回一个响应数组,其中包括搜索   每个搜索请求的响应和状态代码匹配其订单   原始的多重搜索请求

因为您知道发送请求的顺序,所以您可以找出哪个请求失败。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html