当期望>时,Elasticsearch查询返回10万

时间:2016-10-12 21:47:31

标签: elasticsearch

我想检索Elasticsearchnull值为awsKafkaTimestamp的所有JSON对象。这是我设置的查询:

{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "tracer.awsKafkaTimestamp"
        }
      }
    }
  }
}

当我使用DSL卷曲到弹性搜索终点时,我只会得到一些值。我期待它们中的所有(10000+),因为我确定所有awsKafkaTimestamp值都是null

这是我使用Postman时得到的回复。如您所见,只有10个JSON对象返回给我:

enter image description here

2 个答案:

答案 0 :(得分:3)

弹性搜索的正确行为。默认情况下,它仅返回10条记录,并在hits.total字段中提供有关与搜索条件匹配的文档总数的信息。要检索超过10的更多数据,您应在查询中指定大小字段,如下所示(您可以在此处详细了解:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html):

{
    "from" : 0, "size" : 10,
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

答案 1 :(得分:3)

默认情况下,elasticsearch会为您提供10个结果,即使它与10212匹配。您可以设置尺寸参数但限制为10000,因此您唯一的选择是使用滚动API来获取,

来自elasticsearch网站Scroll API

的示例
curl -XGET 'localhost:9200/twitter/tweet/_search?scroll=1m' -d '
{
    "query": {
        "match" : {
            "title" : "elasticsearch"
        }
    }
}
'