Неправильный фильтр по длине поля строки вasticsearch - PullRequest
0 голосов
/ 05 марта 2019

Я использую Elassearch DSL в Python.Я хочу отфильтровать документы, установив минимальную длину строкового поля.Мой код:

s = es_dsl.Search(using=es, index='some_index')
s = s.filter('exists', field='message')
s = s.filter('script', script=f"doc['message.keyword']?.values.toString().length() >= 50")
s = s.source(['message'])
s.scan().__next__().to_dict()

Но я обнаружил, что один документ длиной более 50 символов не вернулся.Документ, который был проигнорирован:

{'message': 'На днях со мной произошло удивительное событие.<...>Прекрасный удивительный заморский мир!\n\nВ Украине должно быть тоже так.'}

Если я изменил фильтр с 50 на 2 символа, он вернется, но с более высоким порогом - нет.Есть ли в этом смысл?

...