3
Neo4j 2.3引入了在范围查找中使用模式标签索引的功能。在Cypher中使用此功能很简单,例如:Neo4j Java API - 模式索引范围查找?
MATCH (n:SomeLabel) WHERE n.prop > 200 AND n.prop < 300
如预期的那样,查询将使用SomeLabel(prop)的索引。
我的问题是,有没有办法用标准的Neo4j Java API复制它?我可以使用GraphDatabaseService.findNodes来执行单个值模式索引查找,但我没有看到任何允许范围查询的方法。
我知道我可以使用Java API运行Cypher查询来完成此操作,但由于我的项目只使用低级Java API,因此如果可能,我想避免这种情况并保持一致。
感谢您的信息。这在我的情况下并不会很好,因为对于我的用例来说,重要的是索引被使用,而不是每个项目和属性都必须被获取和检查。 如果没有办法只用Java API来完成,那么我可能会像这样使用Cypher来正确利用模式索引进行范围查找: 结果myResult = graphDb.execute(“MATCH(n :SomeLabel)WHERE n.prop> 200 AND n.prop <300“) –
所以我恐怕唯一的方法就是使用GraphDatabaseService中的'execute(String query)'方法...你不需要有任何方法来找到使用一个或多个范围的节点 – Supamiu
是的,似乎是这样。不幸的是,现在范围查询可以利用模式索引。我希望他们决定添加一个方法。这将是有益的,恕我直言。 –