在Cypher WHERE过滤子句中使用neo4j自动索引

时间:2011-11-30 19:28:12

标签: neo4j cypher

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

1 个答案:

答案 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

哪一个是最快的很难说。取决于。