0
說我有一個龐大的用戶和其他類型的節點圖。每種類型都有一個標籤,有些可能有多個標籤。由於我正在定義用戶及其對節點的訪問,因此用戶和節點之間存在一種關係類型:CAN_ACCESS
。在其他對象之間,存在不同的關係類型,但是出於訪問控制的目的,當我們從用戶開始時,每件事都涉及CAN_ACCESS
關係。Neo4j標籤,關係類型和密碼匹配性能
我從來沒有使用標籤來執行匹配,所以我的意圖和希望是,通過匹配標籤來排除我的User
節點中存在一個嚴重使用關係類型的性能缺點。顯然,這場比賽可能會變得凌亂:
MATCH (n:`User`)-[r1:`CAN_ACCESS`]->(n2)
但我永遠不會那樣做。我應該這樣做:
MATCH (n:`User`)-[r1:`CAN_ACCESS`]->(n2:`LabelX`)
我的問題,則是本場比賽的目標端標籤的用法是否實際上等同於具有User
和任何給定的標籤之間的專用關係類型。換句話說,這是否:
MATCH (n:`User`)-[r1:`CAN_ACCESS`]->(n2:`LabelX`)
給我相同的性能,這一點:
MATCH (n:`User`)-[r1:`CAN_ACCESS_LABEL_X`]->(n2)
如果CAN_ACCESS_LABEL_X
總是去(N:`User`) - >(N:`LabelX`) ?
馬克剛剛寫了一篇關於此的好博客文章,表現並不完全一樣,但足夠好:http://www.markhneedham.com/blog/2014/09/30/neo4j-genericvague-relationship-names/ – 2014-10-03 22:30:47
哇!這確實是一個很好的時機。我開始研究基於此的應用程序代碼,並在此過程中發現了Neo4j.rb中的一個錯誤。謝謝! – subvertallchris 2014-10-04 13:57:08