Utilizzando indice automatico Neo4j in Cypher WHERE filtraggio clausola
Domanda
sono auto-indici su immobili utilizzati dal motore di esecuzione Cypher (nodo o rapporto) Quando si esegue una clausola WHERE filtraggio? In caso contrario, c'è un modo per dire Cypher di usarli? Che dire di terze parti (ad esempio, Lucene) indici?
Soluzione
Questa è una cosa che abbiamo pensato molto, ma ahimè, non ancora.
La parte indicizzazione dei Neo4j sta per ottenere una revisione presto, e quando ciò accade, si legherà Cypher più vicino ad esso, per essere in grado di fare questo, e altre cose interessanti (come l'euristica per scegliere l'indice di diritto di uso ).
È possibile farlo manualmente però. Se si dispone di un modello movies<-[:ACTS_IN]-actor
, e si desidera che tutti attore di nome Kevin Bacon che hanno partecipato a un film, si può scrivere come:
START movie=node:movies("title:M*")
MATCH movie<-[:ACTS_IN]-actor
WHERE actor.name = "Kevin Bacon"
RETURN movie.title
oppure, si può fare lo stesso con gli indici:
START movie=node:movies("title:M*"),
actor=node:actors(name="Kevin Bacon")
MATCH movie<-[:ACTS_IN]-actor
RETURN movie.title
Qual è il più veloce è difficile da dire. Dipende.