Я хочу получить уникальные шаблоны из моего графика, но если узлы упорядочены по-разному в одних и тех же путях, neo4j считает эти пути разными.
Это шаблон, который я хочу найти:
(a:Store)-[:SELLS]->(:Product)-[:SIMILAR]-(:Product)<-[:SELLS]-(b:Store)
| |
[:BUNDLED] [:BUNDLED]
| |
(a:Store)-[:SELLS]->(:Product)-[:SIMILAR]-(:Product)<-[:SELLS]-(b:Store)
Я пробовал этот запрос:
match (a:Store)-[:SELLS]->(p1:Product)-[:BUNDLED]-(p2:Product)<-[:SELLS]-(a),
(b:Store)-[:SELLS]->(p3:Product)-[:BUNDLED]-(p4:Product)<-[:SELLS]-(b),
(p1)-[:SIMILAR]-(p3), (p2)-[:SIMILAR]-(p4)
return distinct apoc.coll.sortNodes(a + collect(distinct b),'name'), p1, p2, p3, p4
Какие выходы 4 пути, когда я хочу только один:
[[JojaMarket, PierreStore], apple, orange, banana, kiwi]
[[JojaMarket, PierreStore], orange, apple, kiwi, banana]
[[JojaMarket, PierreStore], banana, kiwi, apple, orange]
[[JojaMarket, PierreStore], kiwi, banana, orange, apple]
Как я могу эффективно попросить neo4j вернуть уникальные шаблоны?