Indexing Neo4j-按ID查找节点-如何获取用于查询的ID?

Indexing Neo4j-按ID查找节点-如何获取用于查询的ID?,indexing,neo4j,graph-databases,Indexing,Neo4j,Graph Databases,出于性能原因,我希望能够通过ID找到特定节点(ID比索引更有效) 为了执行以下示例: MATCH (s) WHERE ID(s) = 65110 RETURN s 我需要节点的ID(本例中为65110) 但是我怎么才能得到它呢?由于ID是自动生成的,因此在不查询图形的情况下不可能找到ID,这与目的背道而驰,因为我已经拥有了节点 我错过了什么吗;DR:使用索引属性进行查找,除非您绝对需要优化并可以测量差异 通常使用索引查找作为图形的入口点,即获取提供边遍历开始的节点。虽然Neo4j节点ID的指针

出于性能原因,我希望能够通过ID找到特定节点(ID比索引更有效)

为了执行以下示例:

MATCH (s)
WHERE ID(s) = 65110
RETURN s
我需要节点的ID(本例中为65110)

但是我怎么才能得到它呢?由于ID是自动生成的,因此在不查询图形的情况下不可能找到ID,这与目的背道而驰,因为我已经拥有了节点


我错过了什么吗;DR:使用索引属性进行查找,除非您绝对需要优化并可以测量差异

通常使用索引查找作为图形的入口点,即获取提供边遍历开始的节点。虽然Neo4j节点ID的指针式特性意味着它们理论上更快,但索引查找也非常有效,因此您不应该以性能为理由对它们进行折扣,除非您确信它将产生可测量的差异

您也应该考虑<强> NeN4J节点ID不稳定< /强>。如果您删除了一个节点,那么将来可能会重复使用相同的ID。因此,它们实际上应该被视为内部实现细节,而不是作为应用程序外部接口的一部分依赖的细节

也就是说,我有一个将Neo4j ID存储在Solr索引中的应用程序,用于批量查找节点,但该索引被认为是不稳定的,并且节点还包含一个索引的、应用程序生成的UUID属性(具有唯一约束),该属性用作它们的主“主键”


进一步阅读和讨论:

如果您不知道为什么要按id查找,请不要这样做。正如+Mikesname所说的,使用索引属性和标签。我知道为什么我想按ID-性能进行查找。