Neo4J节点ID是否针对访问进行了优化?

1 indexing nodes neo4j

我正在使用neo4j构建一个大型图形数据库.

我有自己的外部索引,它为我提供了用于进一步neo4j图遍历的相关节点的标识符.换句话说,当我查询数据库时,我已经拥有了我的起始节点ID.

我的问题是:如果我使用neo4j/lucene索引访问相关节点,节点查找会更快吗?

或者是查询,例如:

START n=node({ids})
Run Code Online (Sandbox Code Playgroud)

已针对节点访问进行了优化,使用以下方法无法获得:

START n=node:nodeIndexName(key={value})
Run Code Online (Sandbox Code Playgroud)

谢谢,

Nic*_*las 6

是.Neo4j针对节点ID进行了优化,因为在持久性级别,所有节点都是块,因此访问节点100就像访问块100一样.

我会警告你,如果删除它,Neo4j不保证节点ID.Neo4j收回ID.因此,如果在数据库生命周期中删除并添加多个节点,则外部条目可能是"有效"但不是您期望的.

//编辑:另外,为什么不使用Lucene来执行查找?当然,访问节点ID的速度更快,但这是Lucene在执行查找时在封面下所做的事情,因此key:name, value:frank将返回node id 5123并且neo4j将返回与该ID对应的节点.