执行过滤WHERE子句时,Cypher执行引擎是否使用自动索引(节点或关系)属性?如果没有,有没有办法告诉Cypher使用它们?第三方(例如Lucene)指数怎么样?
答案 0 :(得分: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
哪一个是最快的很难说。取决于。