У меня есть два пути на графике: A-B-C-D и A-B-E-F. Я хотел бы присвоить идентификационные номера этим путям, т. Е. A-B-C-D будет 1, а A-B-E-F будет 2.Определить пути между двумя узлами в neo4j
Возможно ли это? Если да, то как?
У меня есть два пути на графике: A-B-C-D и A-B-E-F. Я хотел бы присвоить идентификационные номера этим путям, т. Е. A-B-C-D будет 1, а A-B-E-F будет 2.Определить пути между двумя узлами в neo4j
Возможно ли это? Если да, то как?
Вы имеете в виду как постоянный идентификатор пути? Это не указано напрямую, но вы можете сделать это в Query в Cypher.
Если вы хотите что-то стойкое, вы всегда можете использовать индекс, поэтому создайте индекс Relationship
, который будет хранить Relationship
s пути 1 под ключом/значением Path: 1.
EDIT: После получения дополнительной информации, вот Прецедент с помощью индекса:
Было бы вас, чтобы определить это в индексе. Вот что вы делаете:
Node a = db.createNode();
Node b = db.createNode();
Node c = db.createNode();
Node d = db.createNode();
Node e = db.createNode();
Node f = db.createNode();
Relationship aTob = a.createRelationshipTo(b, DynamicRelationshipType.withName("RELATIONSHIP"));
Relationship bToc = b.createRelationshipTo(c, DynamicRelationshipType.withName("RELATIONSHIP"));
Relationship cTod = c.createRelationshipTo(d, DynamicRelationshipType.withName("RELATIONSHIP"));
Relationship bToe = b.createRelationshipTo(e, DynamicRelationshipType.withName("RELATIONSHIP"));
Relationship eTof = e.createRelationshipTo(f, DynamicRelationshipType.withName("RELATIONSHIP"));
Index<Relationship> relationshipIndex = db.index().forRelationships("PathIndex");
String pathRId = UUID.randomUUID().toString();
String pathMId = UUID.randomUUID().toString();
relationshipIndex.add(aTob, "PathId", pathRId);
relationshipIndex.add(bToc, "PathId", pathRId);
relationshipIndex.add(cTod, "PathId", pathRId);
relationshipIndex.add(aTob, "PathId", pathMId);
relationshipIndex.add(bToe, "PathId", pathMId);
relationshipIndex.add(eTof, "PathId", pathMId);
Тогда, когда вы хотите найти путь, вы будете искать по ID. Вы несете ответственность за сохранение идентификатора Set в индексе, здесь я использую UUID, но вы можете использовать что-то более представительное из вашей информации. Эти отношения не были бы в любом повторяемом порядке при возврате из Индекса.
Предполагая, что отношения ABCD пути R = (R1, R2, R3), для пути ABEF-отношения M = (M1, M2, M3, M4), будет иметь индекс связей, который может содержать информацию о R (т.е. три потенциально различных отношения)? – tesgoe
Я обновил свой ответ, чтобы показать, что вы можете сделать. – Nicholas
Что вы подразумеваете под «повторяемым порядком»? – tesgoe