0
我有一个数据结构,其中数据由两种节点组成:item
和claim
。 claim
代表关于物品的一些信息并且可以指其他物品,例如 - 某个实体位于某个其他实体中,例如, “德国在欧洲”。示例结构:Cypher中的多步遍历?
create
(v1:item {id:"Q1", name: "Europe"}),
(v2:item {id:"Q2", name: "France"}),
(v3:item {id:"Q3", name: "Germany"}),
(v4:item {id:"Q4", name: "Bavaria"}),
(v5:item {id:"Q5", name: "Munich"}),
(c1:claim:located),
(c2:claim:located),
(c3:claim:located),
(c4:claim:located),
(v5)-[:claim]->c4,
(c4)-[:located]->v4,
(v4)-[:claim]->c3,
(c3)-[:located]->v3,
(v3)-[:claim]->c2,
(c2)-[:located]->v1,
(v2)-[:claim]->c1,
(c1)-[:located]->v1;
也在http://console.neo4j.org/?id=ncbom6。现在,如果我想穿过它 - 例如找出德国或欧洲的所有项目,我该怎么做? Cypher在这种模式下可能吗?我知道有类似v1-[r:*]->v2
的东西,但是这个假设或者是一个特定的关系或者任何关系,并且我需要claim-located
对的重复模式。
这将适用于我提供的迷你数据示例,但当然这不是真实的数据。我认为它可以匹配索赔和所在位置的任何组合,即索赔 - 索赔 - 索赔,定位 - 索赔等。但是有没有一种方法可以匹配特定的顺序“索赔,然后定位,任何次数“? – StasM 2015-02-11 01:57:18
我简化了我的第二个查询。 – cybersam 2015-02-13 02:06:54