2016-11-26 70 views
1

Neo4j不建議使用節點id來存儲在第三方系統中以供以後參考。在java中爲neo4j節點生成juuid的最佳方法是什麼

  1. 那麼在java中爲neo4j節點生成uuid的最佳方法是什麼?
  2. 目前我正在使用UUID.randomUUID();生成uuid。如果我使用UUID.randomUUID(),是否對neo4j搜索有任何性能影響?
+0

這似乎是一個工具/框架的建議問題的工作。你所使用的完全取決於你的偏好(假設你甚至需要一個),並且我懷疑UUID的生成將會像數據庫調用那樣在任何地方接近運營成本。 –

回答

0

的確,您不應該在外部系統中引用內部標識符,因爲內部標識符不穩定。

生成UUID的一種方法是使用apoc procedure library中的apoc.create.uuid函數。例如:

CREATE (p:Person) 
SET p.name = "Bob", 
    p.uuid = apoc.create.uuid() 

有關用戶定義過程和函數的更多信息,請參見this blog post

0

另一種選擇是使用GraphAware UUID以透明方式將UUID分配給節點和可選的關係。它還將確保UUID不會被更改或刪除。

https://github.com/graphaware/neo4j-uuid

聲明:我在GraphAware

+0

@Luanna我試過你的建議,似乎它生成字符串uuid。使用基於字符串的uuid而不是基於數字的uuid在搜索和索引方面是否會有任何性能影響? –

相關問題