在执行过滤 WHERE 子句时,Cypher 执行引擎是否使用(节点或关系)属性的自动索引?如果没有,有没有办法告诉 Cypher 使用它们?第三方(例如,Lucene)索引呢?
问问题
2309 次
1 回答
6
这是我们已经考虑了很多的事情,但可惜,还没有。
Neo4j 的索引部分很快就会进行大修,当这种情况发生时,我们会将 Cypher 与它联系得更紧密,以便能够做到这一点,以及其他有趣的事情(比如启发式方法来选择要使用的正确索引)。
不过,您可以手动完成。如果你有一个movies<-[:ACTS_IN]-actor
模型,并且你想要所有名叫 Kevin Bacon 的演员都参与过电影,你可以这样写:
START movie=node:movies("title:M*")
MATCH movie<-[:ACTS_IN]-actor
WHERE actor.name = "Kevin Bacon"
RETURN movie.title
或者,您可以对索引执行相同操作:
START movie=node:movies("title:M*"),
actor=node:actors(name="Kevin Bacon")
MATCH movie<-[:ACTS_IN]-actor
RETURN movie.title
哪个最快很难说。要看。
于 2011-11-30T19:39:44.237 回答