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

问题描述 投票:5回答:1

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

neo4j cypher
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

哪一个是最快的很难说。要看。

© www.soinside.com 2019 - 2024. All rights reserved.