我正在python中使用elasticsearch dsl。我想过滤我的文档,设置字符串字段的最小长度。我的代码:
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个符号,它将返回,但阈值较高-不。有道理吗?