Apache Lucene索引条件查询:筛选无age字段或age>30的文档
Apache Lucene 查询语句构造
要实现筛选无age字段或age字段值>30的文档(即排除存在age字段且值≤30的文档),可以使用Lucene的布尔查询语法,具体语句如下:
*:* NOT (age:[* TO 30])
语句解释
*:*:匹配索引中的所有文档NOT (age:[* TO 30]):排除所有包含age字段且字段值在*(Lucene能识别的最小值)到30之间的文档age:[* TO 30]:精准匹配存在age字段且值≤30的文档NOT逻辑将上述匹配结果从总结果中剔除
验证示例
对于你提供的示例文档:
name: John
bio: bla bla bla
age: 25
该文档会被age:[* TO 30]匹配到,因此会被NOT排除,不会出现在最终查询结果中。
内容的提问来源于stack exchange,提问作者Maher Ali
相关产品推荐
相关产品推荐

