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
我能够移植我的 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