[英]Cypher path querying (using Neo4j)
我有一個圖數據庫,所以其中有一些像這樣的模式:
(n1)-[:a]->(n2),
(n1)-[:b]->(n2),
(n1)-[:c]->(n2),
(n1)-[:e]->(n2),
(n1)-[:d]->(n3),
(n2)-[:b]->(n4)
我希望所有圖形都具有這種模式
MATCH p={
(n3)<-[:d]-(n1)-[:a]->(n2)-[:b]->(n4),
(n1)-[:b]->(n2)<-[:c]-(n1),
(n1)-[:e]->(n2)
}
RETURN p
可能嗎? 我已經搜索了一下,但還沒有找到方法。 我知道我們可以使用“ |” 對於這樣的類型
()-[:a|b]->()
但沒有“&”,並且分配路徑僅適用於不帶“,”的模式。
謝謝
編輯:如果有幫助,這是我正在尋找的另一個示例:在包含電影,人物和諸如ACTED_IN,KNOWS,FRIEND和HATE之類的人的數據庫中,我希望所有包含actor“ Actor1”(ACTED_IN是電影“ M”),誰知道ACTED_IN同一電影“ M”的“ Person1”,朋友“ Person2”和HATE“ Person3”。
像“邁克爾·漢格”(Michael Hunger)回答中的那樣的UNION無效,因為我們有多個子圖而不是圖。 此外,某些子圖可能不是較大模式的正確答案。
您的查詢將非常低效,因為您不會將搜索范圍限制為既沒有標簽也沒有標簽或標簽+屬性組合的開始節點!
您可以為此使用UNION:
MATCH p=(n3)<-[:d]-(n1)-[:a]->(n2)-[:b]->(n4) RETURN p
UNION
MATCH p=(n1)-[:b]->(n2)<-[:c]-(n1) RETURN p
UNION
MATCH p=(n1)-[:e]->(n2) RETURN p
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.