1

我正在应用以下 Lucene 查询谓词以获取 2 到 6 范围内的所有包含数字:

value:[2 TO 6]

并接收具有以下值的文档:

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

我对数字范围查询很感兴趣,例如,显然该Long567986400000不在[2 TO 6]. 看起来范围搜索是字符串,我不知道如何在我的应用程序中针对不同的数值解决它。

如何在 Lucene 中正确使用数值范围查询?

4

1 回答 1

1

要实现正确的范围查询,您需要使用来自 lucene 的特定定义字段。请参阅字段 javadoc

  • IntPoint:为精确/范围查询索引的 int。
  • LongPoint:长索引用于精确/范围查询。
  • FloatPoint:为精确/范围查询索引的浮点数。
  • DoublePoint:精确/范围查询的双索引。

所以你需要确保你添加这个查询的字段是这种类型之一。正如您所说,您使用 Neo4j 生成的 lucene 索引。必须有一个创建此类字段的选项,否则您将无法执行正确的范围查询。

于 2018-05-28T13:42:27.647 回答