Моя БД состоит из двух групп узлов (меток) x и y.У узлов также есть дополнительные метки (цвета: синий, красный, зеленый и т. д.).
Мой запрос:MATCH (n1:y)-->(n2:x)<--(n3:blue) RETURN n2.idx
В профиле показано расширение для n3 без ссылки на него синего цвета, в результате чего было получено 12 000 обращений к БД, вытеснив 12 000 строк.Следующий этап - это синий фильтр, в результате которого почти 24 000 обращений к БД возвращают 1 036 строк.
У меня есть ограничения на уникальность idx
и idy
, и у меня есть индекс для каждого из цветов.
Я попытался использовать атрибут цвета на узлах y, изменив запрос на следующий без каких-либо различий в профиле.MATCH (n1:y)-->(n2:x)<--(n3:y {color:blue}) RETURN n2.idx
Я пробовал using index n3:blue(idy)
перед оператором RETURN
, но это вызывает синтаксическую ошибку.Я все еще пытаюсь это сделать (простите за каламбур).Как я могу избежать раздувания на этапе db, описанного выше, и сделать так, чтобы он начинался только с синих узлов?