你好我在Cypher中做了一个图形算法Neo4J请求,它首先找到节点然后找到它们之间的关系:
CALL algo.pageRank.stream('MATCH (u:User{uid:"0ee14110-426a-11e8-9d67-e79789c69fd7"}),
(ctx:Context{name:"news180417"}), (u)<-[:BY]-(c:Concept)-[:AT]->(ctx)
RETURN DISTINCT id(c) as id',
'CALL apoc.index.relationships("TO","user:0ee14110-426a-11e8-9d67-e79789c69fd7")
YIELD rel, start, end WITH DISTINCT rel, start, end MATCH (ctx:Context)
WHERE rel.context = ctx.uid AND (ctx.name="news180417" )
RETURN DISTINCT id(start) AS source, id(end) AS target',
{graph:'cypher', iterations:5});
哪个工作正常。但是,当我尝试返回c.uid
而非其Neo4J id()
时,图表算法不接受它。
这是否意味着我只能在图算法中使用Neo4J ID进行操作?
答案 0 :(得分:2)
当你使用Cypher projection图表算法程序时,你会传递2个Cypher语句(和一个配置图)。
第一个Cypher语句必须返回一个id
变量,其值是节点的本机ID。
第二个Cypher语句必须返回其值也是节点ID的source
和target
个变量。
所以,是的,您的Cypher语句必须始终返回neo4j本地ID。