У меня есть несколько отдельных графиков в одной базе данных, и в настоящее время я ищу способ получить список всех подобных графиков.
Например, у меня есть следующие три графика:
Как видите, графики 1 и 2 похожи, а графики 3 отличается, потому что последний узел графа 3 имеет Label_4, а не Label_3 (как это имеет место для 1 и 2). Поэтому я хотел бы получить в результате запроса что-то вроде:
[a1->b1->c1,a2->b2->c2],[a3->b3->d3]
, тогда как a1->b1->c1
- это график 1, a2->b2->c2
- это график 2, а a3->b3->d3
- это график 3.
Есть ли способ достичь этого с помощью Cypher? Представление результата также может быть различным, если оно группирует похожие графы (например, также подходят идентификаторы узла списка или только идентификаторы начального узла).
Для создания примера я использовал следующие команды:
CREATE (a1:Label_1 {name: "Label_1"})
CREATE (b1:Label_2 {name: "Label_2"})
CREATE (c1:Label_3 {name: "Label_3"})
CREATE (a2:Label_1 {name: "Label_1"})
CREATE (b2:Label_2 {name: "Label_2"})
CREATE (c2:Label_3 {name: "Label_3"})
CREATE (a3:Label_1 {name: "Label_1"})
CREATE (b3:Label_2 {name: "Label_2"})
CREATE (d3:Label_4 {name: "Label_4"})
CREATE (a1)-[:FOLLOWS]->(b1)
CREATE (b1)-[:FOLLOWS]->(c1)
CREATE (a2)-[:FOLLOWS]->(b2)
CREATE (b2)-[:FOLLOWS]->(c2)
CREATE (a3)-[:FOLLOWS]->(b3)
CREATE (b3)-[:FOLLOWS]->(d3)