范围查询使用日期间隔

时间:2015-12-03 06:56:24

标签: elasticsearch

有一个时间戳为2015-05-18T19:08:35Z的文档。这在以下查询中正确返回。 但是如果我将时间间隔从5分钟增加到10分钟,则结果中不会显示相同的行。

curl -XGET "http://localhost:9200/enwiki_content/page/_search?&pretty=true" -d' {
  "query": {
    "range": {
      "timestamp": {
        "gte": "2015-05-18T19:04:00Z",
        "lte": "2015-05-18T19:09:00Z"
      }
    }
}  } ' > out2.txt



curl -XGET "http://localhost:9200/enwiki_content/page/_search?&pretty=true" -d' {
  "query": {
    "range": {
      "timestamp": {
        "gte": "2015-05-18T19:01:00Z",
        "lte": "2015-05-18T19:09:00Z"
      }
    }
}  } ' > out2.txt

上面的第二个查询应返回第一个查询+所有其他匹配行的所有行。对? (如果重要的话,这是维基百科的500万数据(超过100 GB)。)

1 个答案:

答案 0 :(得分:1)

原因是因为第二个查询可能会返回更多结果,而您只获得前10个(默认情况下)。

尝试增加第二个查询的大小,你应该得到预期的记录。

curl -XGET "http://localhost:9200/enwiki_content/page/_search?&pretty=true" -d' {
  "size": 100,              <--- add this line
  "query": {
    "range": {
      "timestamp": {
        "gte": "2015-05-18T19:01:00z",
        "lte": "2015-05-18T19:09:00z"
      }
    }
}  } ' > out2.txt

                                                             add size
                                                                |
                                                                V
curl -XGET "http://localhost:9200/enwiki_content/page/_search?size=100&pretty=true" -d' {
  "query": {
    "range": {
      "timestamp": {
        "gte": "2015-05-18T19:01:00z",
        "lte": "2015-05-18T19:09:00z"
      }
    }
}  } ' > out2.txt