Neo4j manual/explicit 索引和非字符串范围查询

Neo4j manual/explicit indexes and non-string range queries

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

它们没有按预期工作

例如:

我正在应用以下 Lucene 查询谓词以获取 2 to 6 运行ge:

中的所有包含数字
value:[2 TO 6]

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

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

这显然不是预期的结果。

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

如果你阅读文档,它会说

'Sorting is done lexicographically'

请参阅 'Range queries' 下的内容: https://lucene.apache.org/core/6_4_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html

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