Lucene 查询语言和数值范围

2024-01-12

我应用以下 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(使用前将#替换为@)

Lucene 查询语言和数值范围 的相关文章

随机推荐