En utilisant l'index auto Neo4j dans Cypher clause WHERE filtrage
Question
sont les propriétés auto-indices sur (noeud ou une relation) utilisé par le moteur d'exécution Cypher lors de l'exécution d'un filtrage de la clause WHERE? Sinon, est-il un moyen de dire Cypher de les utiliser? Qu'en est-il pour un tiers (par exemple, Lucene) indices?
La solution
Ceci est quelque chose que nous avons beaucoup réfléchi, mais hélas, pas encore.
La partie de l'indexation des Neo4j va obtenir une révision bientôt, et quand cela arrive, nous allons attacher Cypher plus près de lui, pour être en mesure de le faire, et d'autres choses intéressantes (comme heuristiques pour choisir l'index droit à l'utilisation ).
Vous pouvez le faire manuellement si. Si vous avez un modèle movies<-[:ACTS_IN]-actor
, et vous voulez que tout acteur du nom de Kevin Bacon qui ont participé à un film, vous pouvez l'écrire comme:
START movie=node:movies("title:M*")
MATCH movie<-[:ACTS_IN]-actor
WHERE actor.name = "Kevin Bacon"
RETURN movie.title
ou, vous pouvez faire la même chose avec des index:
START movie=node:movies("title:M*"),
actor=node:actors(name="Kevin Bacon")
MATCH movie<-[:ACTS_IN]-actor
RETURN movie.title
Lequel est le plus rapide est difficile à dire. Cela dépend.