通过索引查询获取节点关系返回零结果(Cypher)
本文关键字:结果 Cypher 返回 关系 索引 查询 获取 节点 | 更新日期: 2023-09-27 18:03:07
使用最新的Neo4jClient访问Neo4j DB,我不能成功运行以下Cypher查询:
var connections = _graphClient.Cypher
.StartWithNodeIndexLookup("n", "indexName", "'id:*'")
.Match("c=(n)-[:RELATIONSHIP_TYPE]-()")
.Return<MyRelationship>("c")
.Skip(5)
.Limit(10)
.Results;
返回零结果。但是它会生成以下查询:
START n=node:indexName('id:*') MATCH c=(n)-[:RELATIONSHIP_TYPE]-() RETURN c SKIP 5 LIMIT 10
当我直接通过Neo4j的管理板运行时,我得到了正确的结果集。
我错过了什么?
我认为这是因为你的索引
中有单引号var connections = _graphClient.Cypher
.StartWithNodeIndexLookup("n", "indexName", "id:*") //<-- remove the single quotes
.Match("c=(n)-[:RELATIONSHIP_TYPE]-()")
.Return<MyRelationship>("c")
.Skip(5)
.Limit(10)
.Results;
如果您再次遇到这种问题,最简单的方法是将StartWithNodeIndexLookup
调用与Start
切换,并使用已知节点引用来检查错误可能发生的位置。