2016-07-20 62 views
1

我是圖形數據庫的新手,目前正在嘗試使用neo4j。有人可以幫我理解:圖表數據庫中的標籤是什麼

1)什麼是標籤? 2)他們如何/在哪裏使用? 3)爲什麼我們需要它們?我們可以沒有他們工作嗎?

我已閱讀關於標籤,但我無法理解這個概念。

謝謝。

回答

0

標籤用於在圖形中對節點和關係進行命名/分類/分類/關係類型,該圖形不表示單一種類的實體。

如果你的所有節點都是例如人和你的所有關係代表了兩個人相互認識,你不需要標籤。但是如果你對更復雜的東西進行建模,標籤允許你直接輸入節點和關係,而不必依賴節點或關係的一個或多個屬性來描述它。這是描述實體性質的標準,即時可訪問的方式。

或者,在一個更直觀的方式,標籤允許Neo4j的瀏覽器使用不同的顏色:)

Neo4j browser

+0

AFAIK被保留爲[節點(http://neo4j.com/docs/developer-manual/current/#graphdb-neo4j-nodes),而[特性](HTTP:// Neo4j的的.com /文檔/顯影劑手動/電流/#graphdb-Neo4j的特性)均爲用於在節點和關係。這是奇怪的,因爲我曾經使用過一種標籤也RELS(例如'[:Type_of_rel]') – floatingpurr

+0

關係有一個單一類型的,而當你在你的答案已經注意到節點可以有多個標籤。是的,這是一個有點語言虐待的說法的關係有一個標籤,但它是相同的概念,在我看來。 –

+0

我不知道這是否是唯一的,如果有從類型和標籤的具體差異的詞彙的問題... – floatingpurr

2

顯示不同性質的節點正如你在讀official doc,標籤代表着一種類或更好:類型,節點。

標籤是一個命名圖構造,用於將節點分爲 集;所有標有相同標籤的節點都屬於同一組。 許多數據庫查詢可以使用這些集合而不是整個 圖形,這使得查詢更容易編寫,並且執行效率更高。一個 節點可以用任何數量的標籤進行標記,包括無,從而使 標籤成爲圖形的可選添加。

標籤用於定義約束併爲 屬性添加索引(請參閱架構)。

一個示例將是名爲User的標籤,您將標記代表用戶的所有節點 。有了這個,您可以要求Neo4j只在您的用戶節點上執行操作,例如查找所有用戶名爲 的用戶。

但是,您可以使用更多的標籤。例如,由於可以在運行時添加和刪除標籤 ,因此可以使用它們標記節點的臨時狀態 。您可以爲離線的 電話創建一個離線標籤,爲快樂寵物開啓歡樂標籤等等。

重要的是要說一個節點可以有多個標籤。例如,代表本尼迪克特康伯巴奇的node可以標記爲:Person,Man,ActorBritish

您可以按標籤查詢節點。這意味着,本尼迪克特·康伯巴奇的node屬於那些組的每一個,它會在下面的查詢中的每個結果集返回:

MATCH (p:Person) return p 
MATCH (p:Man) return p 
MATCH (p:Actor) return p 
MATCH (p:British) return p 

標籤是不是強制性的,但使用它們被認爲是分類您的數據的最佳實踐並按類型獲取它們。在3.0.x版標籤