簡體   English   中英

密碼路徑查詢(使用Neo4j)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM