我在Neo4j中有这个查询:
MATCH (sentence:Sentence)-[r*]->(n:Word )
WITH n, COUNT(r) AS c
RETURN n, c
我的图表是一个语言数据库,包含它们之间的单词和依赖关系。 此查询应返回节点深度,但COUNT(r)始终返回1。 当我省略COUNT函数并只写
时WITH n, r AS c
而不是(尝试在web浏览器neo4j接口中),neo4j为每个单词节点返回多个关系" n"正如所料。
你能帮我解决一下我做错了什么,如何统计句子节点和单词节点之间的路径长度?感谢。
答案 0 :(得分:2)
我认为它查询返回n和c并且有多个n记录,所以count(r)返回1。
试试这个 -
MATCH (sentence:Sentence)-[r*]->(n:Word )
WITH n, LENGTH(r) AS depth
RETURN n, depth
你会得到这样的深度。
或试试这个
MATCH p= (sentence:Sentence)-->(n:Word)
RETURN n, length(p) as depth
http://docs.neo4j.org/chunked/stable/query-functions-scalar.html#functions-length
答案 1 :(得分:0)
最后我自己找到了解决方案 - 它是密码的LENGTH函数:
MATCH (sentence:Sentence)-[r*]->(n:Word )
WITH n, LENGTH(r) AS c
RETURN n, c
在这个有用的备忘单中找到:http://assets.neo4j.org/download/Neo4j_CheatSheet_v3.pdf