首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j -按ID查找节点-如何获取查询的ID?

Neo4j -按ID查找节点-如何获取查询的ID?
EN

Stack Overflow用户
提问于 2016-07-06 09:32:47
回答 1查看 766关注 0票数 3

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

为了执行以下示例:

代码语言:javascript
复制
MATCH (s)
WHERE ID(s) = 65110
RETURN s

我需要节点的ID (在本例中为65110)

但我怎么得到它呢?由于ID是自动生成的,所以如果不查询图,就不可能找到ID,因为我已经有了节点,所以哪种类型的ID不符合目的。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 09:55:22

TL;DR:使用索引属性进行查找,除非您绝对需要优化,并且可以度量差异。

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

您还应该考虑Neo4j节点ID是不稳定的。如果您删除一个节点,也可以在将来重复使用相同的ID。因此,它们实际上应该被视为内部实现细节,而不是应用程序外部接口的一部分。

尽管如此,我有一个应用程序可以将Neo4j in存储在Solr索引中,以便大量查找节点,但是这个索引被认为是易失性的,并且节点还包含一个索引的、应用程序生成的UUID属性(具有唯一约束),该属性充当它们的主要“主键”。

进一步阅读和讨论:https://github.com/neo4j/neo4j/issues/258

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38220699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档