Neo4j不建議使用節點id來存儲在第三方系統中以供以後參考。在java中爲neo4j節點生成juuid的最佳方法是什麼
- 那麼在java中爲neo4j節點生成uuid的最佳方法是什麼?
- 目前我正在使用UUID.randomUUID();生成uuid。如果我使用UUID.randomUUID(),是否對neo4j搜索有任何性能影響?
Neo4j不建議使用節點id來存儲在第三方系統中以供以後參考。在java中爲neo4j節點生成juuid的最佳方法是什麼
的確,您不應該在外部系統中引用內部標識符,因爲內部標識符不穩定。
生成UUID的一種方法是使用apoc procedure library中的apoc.create.uuid
函數。例如:
CREATE (p:Person)
SET p.name = "Bob",
p.uuid = apoc.create.uuid()
有關用戶定義過程和函數的更多信息,請參見this blog post。
另一種選擇是使用GraphAware UUID以透明方式將UUID分配給節點和可選的關係。它還將確保UUID不會被更改或刪除。
https://github.com/graphaware/neo4j-uuid
聲明:我在GraphAware
@Luanna我試過你的建議,似乎它生成字符串uuid。使用基於字符串的uuid而不是基於數字的uuid在搜索和索引方面是否會有任何性能影響? –
這似乎是一個工具/框架的建議問題的工作。你所使用的完全取決於你的偏好(假設你甚至需要一個),並且我懷疑UUID的生成將會像數據庫調用那樣在任何地方接近運營成本。 –