При использовании post_filter
с date math
в запросе Elasticsearch 2.4, например:
"post_filter": {
"bool": {
"must": [
[
{
"range": {
"facets.due_date": {
"gte": "now+2d\/d",
"lte": "now+3d\/d-1s"
}
}
}
]
]
}
}
Результаты включают документы с датами за пределами диапазона на 1 день. Точно такие же значения используются в агрегатах, которые сообщают правильные подсчеты для сегментов (в данном случае 2 документа для субботы), однако, как уже упоминалось, когда я применяю вышеупомянутый постфильтр, возвращаются 3 документа [дополнительный документ для воскресенья в 9 утра]. Даты являются произвольными, я могу изменить их через несколько дней, и происходит то же самое. Я также использую время UTC и учел это в своем тестировании, добавив / удалив несколько часов в значениях, чтобы обойти любые ошибки, вызванные часовыми поясами.
Если я использую фактический набор конкретных дат, он работает как положено, поэтому мой вопрос: есть ли у post_filter
проблема / ошибка с date math
или есть способ использовать explain
, чтобы показать мне даты post_filter
отправляет на сервер ES?
Заранее спасибо, вот уже 3 дня бьюсь головой об кирпичную стену !!