Использование автоматического индекса NEO4J в Cypher, где оговорка о фильтрации

StackOverflow https://stackoverflow.com/questions/8331732

  •  26-10-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Это то, о чем мы много думали, но, увы, пока нет.

Индексационная часть 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

Какой из них самый быстрый, трудно сказать. Зависит от.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top