5

在执行过滤 WHERE 子句时,Cypher 执行引擎是否使用(节点或关系)属性的自动索引?如果没有,有没有办法告诉 Cypher 使用它们?第三方(例如,Lucene)索引呢?

4

1 回答 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 回答