3
我有以下圖形設置:的Cypher查詢返回重複的結果
start root=node(0)
create (F {name:'FRAME'}), (I {name: 'INTERACTION'}), (A {name: 'A'}), (B {name: 'B'}),
root-[:ROOT]->F, F-[:FRAME_INTERACTION]->I, I-[:INTERACTION_ACTOR]->A, I-[:INTERACTION_ACTOR]->B
而下面的查詢將返回複製的結果:
START actor=node:node_auto_index(name='A')
MATCH actor<-[:INTERACTION_ACTOR]-interaction-[:INTERACTION_ACTOR]->actor2,
frame-[:FRAME_INTERACTION]->interaction
RETURN frame, interaction
Query Results
+-----------------------------------------------------+
| frame | interaction |
+-----------------------------------------------------+
| Node[1]{name:"FRAME"} | Node[2]{name:"INTERACTION"} |
| Node[1]{name:"FRAME"} | Node[2]{name:"INTERACTION"} |
+-----------------------------------------------------+
2 rows
52 ms
即使我再添加一個開始節點試圖限制結果,我有相同的:
START actor=node:node_auto_index(name='A'), frame=node:node_auto_index(name='FRAME')
MATCH actor<-[:INTERACTION_ACTOR]-interaction-[:INTERACTION_ACTOR]->actor2,
frame-[:FRAME_INTERACTION]->interaction
RETURN frame, interaction
我想了解爲什麼查詢返回重複編輯結果。 我知道可以通過使用distinct來返回唯一的結果,但是是否可以通過匹配路徑來更改查詢以僅返回一個結果,而無需應用額外的操作(distinct)?
(設置和查詢可以在http://console.neo4j.org/?id=q2e0ay測試)
謝謝!我被集中在一個更復雜的查詢中,在這個簡單的例子中,我沒有看到眼前的解決方案。 – 2013-04-09 11:03:44