Меня смущает странное поведение Elasticsearch (версия 6.4). Я пытаюсь фильтровать данные между двумя датами.
Когда я использую такой URL:
http://localhost:9200/index/_search?q=date_time:[2018-10-27T00:00:00+TO+2018-10-27T23:00:00]
Результат пуст. Однако, когда я использую URL-адрес с форматом epoch_millis
для этой даты, он работает и возвращает правильный результат.
http://localhost:9200/index/_search?q=date_field:[1540576800000+TO+1540638000000]
В Kibana я вижу эту информацию о data_field
:
Как в Elasticsearch правильно отфильтровать данные между 2 датами?
Что ты имеешь в виду? Вы хотите сказать, что первый URL правильный?
Нам нужно знать, как ваше поле date_field определяется в вашем сопоставлении индекса.
@ibexit, можешь еще раз проверить мой пост. Добавляю информацию о data_field
, которую замечаю в Kibana. Есть ли у вас какие-либо идеи?
Вы можете прочитать отображение индекса через GET http: localhost: 9200 / index / _mapping / _doc yust в следующий раз;)
Спасибо за информацию! Он показывает мне это: "date_time":{"type":"date"}
Пожалуйста, попробуйте заключить даты в двойные кавычки, например: date_field: ["2018-10-27T00: 00: 00" + TO + "2018-10-27T23: 00: 00]"]
К сожалению, это не помогло. Безрезультатно.
Это должно сработать. Может быть, у вас неправильное название поля? Вы используете два разных имени поля: date_time и date_field. Поскольку мы уже знаем ваше сопоставление для date_time, что такое сопоставление для date_field?
Это действительно странно, братан. В Kibana
я вижу результат сегодняшнего дня 2018-10-27
. Формат даты epoch_millis
я беру у Кибаны. Итак, данные за день 2018-10-27
существуют в индексе. Но почему-то URL-адрес не работает.
Но в приведенных выше примерах есть два разных имени поля. Это верно? И вы говорите, что информация о отображении кибаны предназначена для data_field ... итак, у нас есть 3 поля в ваших примерах ... какое из них правильное? Может быть, вы можете показать нам образец документа?
Не обращай на это внимания. Я просто неправильно это написал.
Хорошо, так кто же выбран?
Братан, на самом деле имя - data_time
. Я решил называть его, например, data_field
. Это все.
Позвольте нам продолжить обсуждение в чате.
пожалуйста, предоставьте вашу карту