我在图中有两条路径:ABCD 和 ABEF。我想为这些路径分配标识号,即 ABCD 为 1,ABEF 为 2。
可能吗?如果是,如何?
你的意思是像一个持久的路径ID?这不是直接的特色,但您可以在 Cypher 中的 Query 中进行。
如果你想要持久化的东西,你总是可以使用索引,所以创建一个Relationship
索引,将路径 1 的Relationship
s 存储在路径:1 的键/值下。
编辑:获得更多信息后,这是一个使用索引的用例:
您可以在索引中定义它。这是你要做的:
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 Id,这里我使用 UUID,但您可以使用更能代表您的信息的东西。从索引返回时,这些关系不会以任何可重复的顺序排列。