Как правильно фильтровать записи по диапазону дат в Elasticsearch? - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь отфильтровать записи за период в 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

В результате я вижу все записи о городе Лондон, но фильтр диапазона дат неРабота.Как это исправить?

Я проверяю формат поля 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 из URL, он вернет все записи за период для всех городов.Похоже, мой URL-адрес не является правильным.Как сделать правильный URL с параметрами ulmple?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Правильный URL для поиска:

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
0 голосов
/ 25 октября 2018

Наконец я нашел причину проблемы.Это был неправильный 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
...