Lucene查询语言和数值范围

时间:2018-05-26 08:19:55

标签: lucene range-query

我应用以下Lucene查询谓词,以便获得2到6范围内的所有包容性数字:

value:[2 TO 6]

并接收包含以下值的文件:

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

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

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

1 个答案:

答案 0 :(得分:1)

要获得正确的范围查询,您需要使用lucene中特定的定义字段。见Field javadoc

  • IntPoint:int为精确/范围查询编制索引。
  • LongPoint:长索引为精确/范围查询。
  • FloatPoint:为精确/范围查询建立索引。
  • DoublePoint:为精确/范围查询双重索引。

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