Если вы передадите список значений свойств в параметре $ props и длина этого списка будет 4
, этот запрос сначала будет искать все пути длины 4, которые имеют желаемое начало иконечные узлы (чтобы сузить пути-кандидаты), а затем отфильтровать внутренние узлы путей:
MATCH p=(a:Node {prop: $props[0]})-[*4]->(b:Node {prop: $props[-1]})
WITH p, NODES(p)[1..-2] AS midNodes
WHERE ALL(i IN RANGE(1, SIZE(midNodes)) WHERE midNodes[i-1] = $props[i])
RETURN p;
Чтобы повысить эффективность, вы должны создать index для :Node(prop)
какхорошо.
Если этот запрос ничего не возвращает, значит, нет подходящих путей.