访问Cypher中的节点

时间:2013-09-23 04:03:33

标签: neo4j cypher

我有一个这样的图表:

START root=node(0) 
CREATE 
(Dark { name:"dark" }),(Colors { name:"colors" }),(Blue { name:"blue" }),
(Indigo { name:"indigo" }),(Red { name:"red" }),(Orange { name:"orange" }),
(LightOrange { name:"lightorange" }),(Tangerine { name:"tangerine" }),
Dark-[:CHILD]->Colors,Blue-[:CHILD]->Colors,Indigo-[:CHILD]->Blue,
Red-[:CHILD]->Colors,Orange-[:CHILD]->Red,LightOrange-[:CHILD]->Orange,
Tangerine-[:CHILD]->Orange

它本质上是一棵树,树枝之间有一些连接。

因此,如果输入“黑暗”,“橘子”和“靛蓝”,我可以得到最新的共同祖先,如下:

START a=node(*), b=node(*),c=node(*) 
MATCH pa=a-[s:CHILD*]->x, pb=b-[s:CHILD*]->x,pc=c-[s:CHILD*]->x 
WHERE a.name = 'dark' AND b.name = 'tangerine' AND c.name = 'indigo' 
RETURN x 
ORDER BY length(pa+pb+pc) 
LIMIT 1

我的问题是,如何获得可能导致祖先的最小树枝组的节点?例如,上述查询的结果可以是“暗”,“橙”,“红”,“颜色”,“靛蓝”。

0 个答案:

没有答案