首页 > 解决方案 > Neo4j 手动/显式索引和非字符串范围查询

问题描述

我能够移植我的 Neo4j 3.4.0 应用程序以使用手动索引和 APOC 过程,而不是查询索引关系属性。除了最后一件事之外,一切都像魅力一样工作 - 我遇到了非字符串 Lucene 范围查询的问题。

它们没有按预期工作Lucene 查询语言和数字范围

例如:

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

value:[2 TO 6]

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

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

这显然不是预期的事情。

我可以在 Neo4j/APOC 中做些什么来使其正常工作吗?

标签: indexingneo4jlucenecypherneo4j-apoc

解决方案


如果您阅读文档,它会说

'排序是按字典顺序完成的'

请参阅下面的“范围查询”: https ://lucene.apache.org/core/6_4_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html

您应该将数据索引到,例如 aDoubleDocValuesField而不是StringField/TextField并使用适当的 Lucene 查询,例如PointRangeQuery


推荐阅读