Elasticsearch 2.4 post_filter дата математика - PullRequest
0 голосов
/ 31 мая 2019

При использовании 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 дня бьюсь головой об кирпичную стену !!

1 Ответ

0 голосов
/ 31 мая 2019

По какой-то очень странной причине получается, что использование lte в постфильтре позволяет захватывать окружающие документы, тогда как если я использую lt, то это работает, как и ожидалось, я понятия не имею, почему это происходит, яможно только предположить, что при применении post_filter происходит некоторое округление, но оно не округляется при вычислении агрегации!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...