Neo的全球指数

时间:2015-11-14 16:25:24

标签: neo4j

在我们公司,我们通过网络服务向客户返回ID列表。这些ID在整个系统中是唯一的。他们调用传递ID的其他Web服务。我们并不总是知道我们收到的身份证的标签。

这不会执行:

MATCH(n {id:{my_id}) ...

虽然我们在几乎所有标签类型上都有索引,但是这个查询没有标签,因此我没有使用索引。

向所有节点添加一个名为“GLOBAL”(或其他)的标签是不是一个坏主意,所以我们可以在GLOBAL.id上添加一个唯一约束?然后上面的查询可能是

MATCH(n: GLOBAL{id:{my_id}})...

并且表现很好。

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Neo4j的内部ID来识别您的资源,但这不是最佳做法,请参阅Should we use the Neo4J internal id?

这是如何使用他的neo4j的内部id来获取节点:

START n=node({my_id}) return n

它实际上比MATCH子句快,因为这里你的查询直接从一个节点开始,并且不必过滤一组节点的属性,因为它是内部id。

如果您可以处理内部ID限制,那么它就是您正在寻找的解决方案。