У меня есть запрос, который работал некоторое время, но по мере роста моего графика серьезно замедлился:
MATCH p1=(n2)-[*0..]->(n3)-[r4]->(n5)
WHERE (id(n2) = 123456 // Fill in starting node ID
AND all(r6 in relationships(p1) WHERE (NOT exists(r6.value1) OR r6.value1 = r6.value2) // Add some constraints on the path
))
RETURN id(n3),n3.constr,r4.constr,type(r4),id(n5),n5.constr,n5.value // Things about n3,r4,n5, n3 may be the starting node
К сожалению, под моим начальным узлом есть различные метки и отношения узлов, и яхочу вернуть информацию о них, чтобы я не мог больше ограничивать свой запрос этими частями.Я могу быстро получить свой начальный узел, так как у меня есть его идентификатор, но я не могу найти быстрый способ получить все под начальным узлом.
Этот вопрос задает то же самое, но без какого-либо реального ответа, кроме как добавить ограничения на метки, которые я не могу сделать.Поскольку я знаю, что у меня есть древовидная структура (и я хочу, чтобы все узлы находились под начальным узлом), есть ли более быстрый способ выполнить этот запрос?Это то, что я должен написать в Traversal API (если так, как это будет выглядеть)?