我应用以下 Lucene 查询谓词来获取 2 到 6 范围内的所有数字:
value:[2 TO 6]
并接收具有以下值的文档:
567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000
我对数字范围查询感兴趣,显然,例如Long
value 567986400000
不在范围内[2 TO 6]
。看起来范围搜索是字符串,我不知道如何在我的应用程序中针对不同的数值来解决它。
如何在Lucene中正确使用数值范围查询?
为了实现适当的范围查询,您需要使用 lucene 中特定定义的字段。看字段javadoc https://lucene.apache.org/core/7_0_1/core/org/apache/lucene/document/Field.html
- IntPoint:用于精确/范围查询的 int 索引。
- LongPoint:用于精确/范围查询的长索引。
- FloatPoint:用于精确/范围查询的浮点索引。
- DoublePoint:用于精确/范围查询的双索引。
因此,您需要确保添加此查询的字段是这种类型之一。正如您所说,您使用 Neo4j 生成的 lucene 索引。必须有一个选项来创建此类字段,否则您将无法执行正确的范围查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)