Я пытаюсь выполнить некоторые запросы, подобные следующему:
MATCH path = (f1:Frag)-[r1:I]->(f2:Frag)-[r2:I]->(f3:Frag)-[r3:I]->
(f4:Frag)-[r4:I]->(f5:Frag)-[r5:I]->(f6:Frag)
WHERE (r1.at2 <> r2.at1 AND r2.at2 <> r3.at1 AND r3.at2 <> r4.at1
AND r4.at2 <> r5.at1) AND (not((f1)-[:E]-(f3)) AND not((f1)-[:E]-(f4))
AND not((f1)-[:E]-(f5)) AND not((f1)-[:E]-(f6)) AND not((f2)-[:E]-(f4))
AND not((f2)-[:E]-(f5)) AND not((f2)-[:E]-(f6)) AND not((f3)-[:E]-(f5))
AND not((f3)-[:E]-(f6)) AND not((f4)-[:E]-(f6)))
RETURN path LIMIT 10
Но когда я хочу ограничить свой запрос некоторыми отношениями, такими как:
MATCH path = (f1:Frag)-[r1:I]->(f2:Frag)-[r2:I]->(f3:Frag)-[r3:I]->
(f4:Frag)-[r4:I]->(f5:Frag)-[r5:I]->(f6:Frag)
WHERE (r1.at2 <> r2.at1 AND r2.at2 <> r3.at1 AND r3.at2 <> r4.at1
AND r4.at2 <> r5.at1) AND (not((f1)-[:E]-(f3)) AND not((f1)-[:E]-(f4))
AND not((f1)-[:E]-(f5)) AND not((f1)-[:E]-(f6)) AND not((f2)-[:E]-(f4))
AND not((f2)-[:E]-(f5)) AND not((f2)-[:E]-(f6)) AND not((f3)-[:E]-(f5))
AND not((f3)-[:E]-(f6)) AND not((f4)-[:E]-(f6)))
AND ALL(r in relationships(path) WHERE r.niv <20)
RETURN path LIMIT 10
Это занимает гораздо больше временичтобы найти некоторые решения, чем на всех отношениях, потому что он использует все отношения.
Можно ли ограничить запрос подграфом?