我想知道如何使用自动索引进行范围查找。如果我查询类似
的内容 START age=node:node_auto_index(age<20 and age>10)
RETURN age;
它返回
Exception in thread "main" string literal or parameter expected.
我也试过像
这样的东西START age=node:node_auto_index(age = range(10,20))
RETURN age;
但它看起来只需要age = "15"
或类似的东西。
任何想法该怎么办?
答案 0 :(得分:3)
Lucene documentation表示范围语法如下:
age:[10 TO 20]
结果查询(但尚未对此进行测试):
START age=node:node_auto_index("age:[10 TO 20]")
RETURN age;
以下内容对您来说也很有趣:Range queries in Neo4j using Lucene query syntax
编辑:不确定它是否适合你;看看这个github issue。
答案 1 :(得分:0)
为什么不使用where子句,如下所示?
START node=node:node_auto_index(name='PersonName')
where node.age > 20 and node.age <20
RETURN node.age;
答案 2 :(得分:0)
在与Neo4J Technologies的Stefan Armbruster一起举办的研讨会之后,出现了同样的话题。
我们提出的最基本的解决方案是确保为numeric属性存储的所有值都具有相同的长度。因此,需要填写年龄属性值,如下,011,099,103 ......并且值存储为字符串而不是数值。
这样做一切都应该从索引开始。