我要查询这样的路径 match p=(n:Person{name:“甄姬”})-[r*2…2]-(m) return p 这是我的返回结果 (甄姬)<-[:None {}]-(刘备)-[:None {}]->(貂蝉) 这是我想要的结果 (甄姬)<-[:knows]-(刘备)-[:love]->(貂蝉)
也就是我希望路径上的关系也返回在结果中,查询语句该怎么写?
@graphway 谢谢,如果这样写也能返回我要的结果 match p=(n:Person{name:“甄姬”})-[r*2…2]-(m) return n,r,m 我不懂您说的解析是什么意思,是提取p中的信息吗,但是p中关系是None。。。
@bingo 讲道理p里面是包含有节点和关系的,我把查询结果打印出来 query1 = 'match p=(m:Person{name:“甄姬”})-[r:love]-(n) return p limit 10’ data = graph.run(query1).data() for path in data: print(path) 这里是打印的结果: {‘p’: (甄姬)-[:None {}]->(关羽)} {‘p’: (甄姬)<-[:None {}]-(刘备)} 我期望的结果是{‘p’: (甄姬)-[knows]->(关羽)}, 用路径返回的话不知道该怎么写了
@bingo 谢谢你,可能是没有答应出来吧,我在web端查询的结果关系也是显示的没有内容{}
match p=(m:Person{name:“甄姬”})–(n) return p limit 10 ╒══════════════════════════════════════════════════════════════════════╕ │"p" │ ╞══════════════════════════════════════════════════════════════════════╡ │[{“add”:“苏州”,“name”:“甄姬”,“gender”:“female”,“age”:18},{},{“add”:“四川”,“n│ │ame”:“关羽”,“gender”:“male”,“age”:58}] │ ├──────────────────────────────────────────────────────────────────────┤ │[{“add”:“苏州”,“name”:“甄姬”,“gender”:“female”,“age”:18},{},{“add”:“四川”,“n│ │ame”:“刘备”,“gender”:“male”,“age”:38}] │ └──────────────────────────────────────────────────────────────────────┘
@zhoujieren64 用type(rel)来返回边的属性是可以的,但是直接返回path就显示none,而且下午我发现这个返回none的不是全部,使部分,就是有的path里属性什么的都返回了,有的返回的none,现在还在找原因。。。
@hitzhs type只能返回relation的类型,不返回边的具体属性。 你说的这种情况我感觉是有些path里的边有property,有些边没有property shell里执行return path 通常是不显示节点labels和边的relation的,整个path是由节点和边的property构成的
@zhoujieren64 传不了图。。这是py2neo的语句graph.run(‘MATCH (ee:Person)-[re:KNOWS]-(friends) RETURN ee, friends,re’).totable() ,现在返回的结果是正常的(_3491:Person {from: ‘Sweden’, klout: 99, name: ‘Emil’}), (_3493:Person {from: ‘Belgium’, name: ‘Ian’, title: ‘author’}) ,(Emil)-[:KNOWS {rating: 5}]->(Ian),不过有时返回的是这样的(_3491:Person {from: ‘Sweden’, klout: 99, name: ‘Emil’}), (_3493:Person {from: ‘Belgium’, name: ‘Ian’, title: ‘author’}) ,(Emil)-[:None {}]->(Ian),一样的代码,但是结果不一样。。。
以下是一个查询路径,并解析路径的例子. 返回:时间戳,关系id列表,节点属性norm列表
match p=(n:outside)-[*0..4]-(n_e:outside)
where n.pid in ["f7bd95d804494e5f43eabb3ce2f50449"] and n_e.pid in ["8e1de718b750a0a01092ad4d26f09ef9"]
return timestamp() as batch,extract(x IN relationships(p)|id(x)) as rel_id,extract(x IN relationships(p)|100.0-toFloat(coalesce(x.norm,100.0))) as distance,length(p) as length
order by length asc
limit 10
这个只是Browser或cypher-shell的显示,在json的数据内容中是有路径的完整信息。如果用驱动,可以参考下面的例子: StatementResult result = session.run(“MATCH path=(e:Entity) -[]- () RETURN path”); Path current = result.single().get(“path”).asPath(); Iterator<Relationship> relsIterator = current.relationships().iterator(); Map<String, Object> rels = new HashMap<>(); while (relsIterator.hasNext()) { Relationship support = relsIterator.next(); rels.put(support.type(), support); }