indexing - 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 中做些什么来使其正常工作吗?
解决方案
如果您阅读文档,它会说
'排序是按字典顺序完成的'
请参阅下面的“范围查询”: https ://lucene.apache.org/core/6_4_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html
您应该将数据索引到,例如 aDoubleDocValuesField
而不是StringField
/TextField
并使用适当的 Lucene 查询,例如PointRangeQuery
推荐阅读
- powerbi - DAX:如何动态切换列进行计算?
- jquery - Ajax无限滚动不适用于laravel表
- c# - 根级别的数据无效
- asp.net - 如何在 Site.Master 中编码的垂直导航栏中突出显示选定的菜单?
- node.js - 如何使用 Node.js 解码 SAML 响应并解析解码响应(即 XML)中的数据?
- python - 使用隧道将文件从本地系统传输到服务器
- python - 在 Bing Ads Api 上,如何将结果转换为 Json 或 Xml?
- html - 如何在 Zurb-Foundation 钻取 - 下拉列表中为 li 标签添加自定义箭头?
- html - 如何用日语制作漂亮的换行符?
- r - 使用 stringr 转换数据