出于性能原因,我希望能够通过它的ID找到一个特定的节点(ID比索引更有效)
为了执行以下示例:
MATCH (s)
WHERE ID(s) = 65110
RETURN s我需要节点的ID (在本例中为65110)
但我怎么得到它呢?由于ID是自动生成的,所以如果不查询图,就不可能找到ID,因为我已经有了节点,所以哪种类型的ID不符合目的。
我是不是遗漏了什么?
发布于 2016-07-06 09:55:22
TL;DR:使用索引属性进行查找,除非您绝对需要优化,并且可以度量差异。
通常,您使用索引查找作为图形的入口点,也就是说,获取提供边缘遍历开始的节点。虽然Neo4j节点it类似指针的特性意味着它们在理论上更快,但是索引查找也非常有效,因此您不应该基于性能原因对它们进行折扣,除非您确信它会产生可测量的差异。
您还应该考虑Neo4j节点ID是不稳定的。如果您删除一个节点,也可以在将来重复使用相同的ID。因此,它们实际上应该被视为内部实现细节,而不是应用程序外部接口的一部分。
尽管如此,我有一个应用程序可以将Neo4j in存储在Solr索引中,以便大量查找节点,但是这个索引被认为是易失性的,并且节点还包含一个索引的、应用程序生成的UUID属性(具有唯一约束),该属性充当它们的主要“主键”。
https://stackoverflow.com/questions/38220699
复制相似问题