Elasticsearch返回总计624但是命中数组为空

Seb*_*nne 0 elasticsearch

我有一个奇怪的结果这个查询:它返回总共612个文档,但没有命中.

这是查询:

{
  "from": 900,
  "size": 30,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "user_id": "145698489"
              }
            }
          ],
          "should": [
            {
              "bool": {
                "must": [
                  {
                    "range": {
                      "date_created": {
                        "to": "2016-07-30T20:11:09.176-03:00",
                        "gte": "2016-07-07T23:39:45.530-03:00"
                      }
                    }
                  }
                ],
                "must_not": [
                  {
                    "term": {
                      "resource.object.label": "hidden"
                    }
                  }
                ],
                "should": []
              }
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是结果:

{
    "_shards": {
        "failed": 0,
        "successful": 1,
        "total": 1
    },
    "hits": {
        "hits": [],
        "max_score": 1,
        "total": 612
    },
    "timed_out": false,
    "took": 73
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改日期范围,我会正确地得到结果.

为什么ES这样做?

dad*_*net 6

因为你设置from900.如果你的900命中率低于命中率,则不会返回命中数.