我有一個由活動目錄生成的組織的neo4j圖。neo4j - 遍歷結構來構建XML
唯一存在的關係是MANAGE,節點1是根節點(組織的頂部),所有其他成員最終通過管理關係報告給節點1。
我沒碰過Neo4j的穿越,但我想提供一個逗號分隔的用戶名列表,併產生一個樹形結構包括
根節點< - 孩子下降到LCA和LCA < - 兒童
我已經可以在Neo4j中獲得生命週期評估了,我只需要確定從哪裏去。
String users = "tom,sarah,liam";
List<Node> nodeSet = new ArrayList<Node>();
String usernames[] = users.split(",");
for (String user : usernames) {
Node found = nodeIndex.get("username", user).getSingle();
if (found != null) nodeSet.add(found);
}
Node lca = getLCA(nodeSet);
private Node getLCA(List<Node> nodes) {
RelationshipExpander expander = Traversal.expanderForTypes(RelTypes.MANAGE, Direction.INCOMING);
return AncestorsUtil.lowestCommonAncestor(nodes, expander);
}
所以,如果我提供的名單「莎拉,湯姆,利亞姆」下面的結構將被創建:
Root
|
|
|
John
|
Jane
/ \
Sarah Jerome
/ \
Liam Tom
我想這樣做是XML或JSON像這樣:(XML實例)
<user>
<name>Root</name>
<children>
<user>
<name>John</name>
<children>
<user>
<name>Jane</name>
<children>
<user>
<name>Sarah</name>
</user>
<user>
<name>Jerome</name>
<children>
<user>
<name>Liam</name>
</user>
<user>
<name>Tom</name>
</user>
</children>
</user>
</children>
</user>
</children>
</user>
</children>
</user>
有人能指出我從哪裏開始的正確方向嗎?
請粘貼您的代碼/步驟,你「獲得LCA在Neo4j」的部分。 – ulkas
@ulkas我把它粘貼在上面。 – user1277546
我創建了一些遍歷,它們獲得root - > LCA和LCA - >每個用戶,但是我不確定是否可以將其作爲一個遍歷器來編寫,或者我將如何加入遍歷結果。 – user1277546