我想检索Elasticsearch
中null
值为awsKafkaTimestamp
的所有JSON对象。这是我设置的查询:
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "tracer.awsKafkaTimestamp"
}
}
}
}
}
当我使用DSL
卷曲到弹性搜索终点时,我只会得到一些值。我期待它们中的所有(10000+),因为我确定所有awsKafkaTimestamp
值都是null
这是我使用Postman
时得到的回复。如您所见,只有10个JSON对象返回给我:
答案 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"
}
}
}
'