Lucene不是空查询?

2022-01-15 00:00:00 lucene java

我们如何构造一个查询来搜索不为空的特定字段?

How can we construct a query to search for particular field to be not null?

field_name:* 不起作用.我试过 field_name:[a* to z*] 这适用于英语,但不涵盖所有语言.

field_name:* is not working. I tried field_name:[a* to z*] this works fine for English, but does not cover all languages.

还有其他建议吗?

推荐答案

目前 Lucene 不支持.请参阅 this 进行讨论.

This is currently not supported by Lucene. See this for a discussion.

另一种选择可能是将一些预定义的字符串(如 nullnullnullnull)存储为字段值(如果它为空).然后您可以使用否定过滤器来删除这些记录.(我不太喜欢这个,但想不出更好的选择)

An alternative option may be to store some pre-defined string (like nullnullnullnull) as the field value if it is null. Then you can use a negative filter to remove these records. (I don't like this much, but can't think of a better option)

相关文章