2015-07-10 51 views
1

我需要在Neo4j中跨越任何頂點創建一個唯一的索引,而不考慮標籤。Neo4j中所有頂點的索引

我可以做以下,但它不能保證全局唯一性:

CREATE CONSTRAINT ON (x:myType1) ASSERT x.identifier IS UNIQUE

以上將允許(X:myType1)和(Y:myType2)具有相同的identifier

有什麼辦法可以實現一個全球唯一的唯一性約束?

+0

的Neo4j給每個節點的全局唯一ID(但一個節點被刪除後,可以使用它的ID再次爲一個新的節點)。您可以使用'ID(節點)'函數獲取節點的ID。從您的問題中不清楚這個ID是否足夠滿足您的需求。 – cybersam

+0

好主意,但不幸的是,我忘了提及,我不能重複使用任何已刪除的ID。 –

回答

1

可能有更好的方法,但我似乎找到了一個:使用另一個標籤。

CREATE (v:label1:global {identifier:"12345")

而且具有全球唯一性約束只設置對全局標籤:

CREATE CONSTRAINT ON (g:global) ASSERT g.identifier IS UNIQUE