如何在Elasticsearch中按日期范围正确过滤条目?

时间:2018-10-25 04:02:56

标签: json elasticsearch elastic-stack

我正在尝试过滤Elasticsearch中该期间的条目。我使用的是Elasticsearch version 6.4.1

我使用这样的 URL

http://localhost:9200/index_name/_search?q=stamper:[2018-10-01T00:00:00.000Z+TO+2018-10-07T23:59:59.999Z]&q=city=London

结果,我看到有关伦敦市的所有条目,但日期范围过滤器不起作用。如何解决?

我检查了Kibana中stamper字段的格式。它告诉我:

Type: date
Format: Date

Result示例:

"hits": [
    {
        "_index": "youtube",
        "_type": "doc",
        "_id": "K6OKZ2YBmp2VWXSDhFPc",
        "_score": 0.9570947,
        "_source": {
            "avg": 6258.5,
            "price": "2259",
            "region": "England",
            "@version": "1",
            "description_id": "7406",
            "stamper": "2018-09-28T08:00:00.000Z",,
            "area": "London",
            "datefor": "2018-09-28",
            "@timestamp": "2018-10-12T09:10:23.103Z",
            "city": "London",
        }
    },
    [***]
]

我注意到,如果我们从网址中删除&q=city=London,它将返回所有城市期间的所有条目。看来我的网址不正确。如何制作具有多个参数的正确网址?

2 个答案:

答案 0 :(得分:1)

要搜索的正确网址是:

http://localhost:9200/index_name/_search?q=stamper:[2018-10-01T00:00:00.000Z+TO+2018-10-07T23:59:59.999Z] AND city:London

编码后,它将像:

http://localhost:9200/index_name/_search?q=stamper:[2018-10-01T00:00:00.000Z+TO+2018-10-07T23:59:59.999Z]%20AND%20city:London

答案 1 :(得分:0)

最后,我找到了问题的原因。 URL不正确。

如果您想在multiple parameters中使用URL,请使用:

http://localhost:9200/index_name/_search?q=stamper:[2018-10-01T00:00:00.000Z+TO+2018-10-07T23:59:59.999Z]%20AND%20city:London