Использование neo4j auto index в предложении фильтрации Cypher WHERE - PullRequest
5 голосов
/ 30 ноября 2011

Используются ли автоматические индексы свойств (узла или взаимосвязи) механизмом выполнения Cypher при выполнении предложения WHERE фильтрации?Если нет, есть ли способ сказать Cypher использовать их?А как насчет сторонних (например, Lucene) индексов?

1 Ответ

6 голосов
/ 30 ноября 2011

Об этом мы много думали, но, увы, пока нет.

Индексирующая часть Neo4j скоро получит капитальный ремонт, и когда это произойдет, мы свяжем Cypher с ним поближе, чтобы иметь возможность сделать это, и другими интересными вещами (такими как эвристика, чтобы выбрать правильный индекс для использования ).

Вы можете сделать это вручную, хотя. Если у вас модель movies<-[:ACTS_IN]-actor и вы хотите, чтобы все актеры по имени Кевин Бэкон участвовали в фильме, вы можете написать это как:

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

Какой из них самый быстрый, сказать сложно. В зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...