簡體   English   中英

在 Gremlin 中創建從一個遍歷到另一個遍歷的邊

[英]Create edges from one traversal to another in Gremlin

我在 Java 中使用 Gremlin API。 假設我們有一個對persons的遍歷和另一個對位置的遍歷,它很長並且依賴於第一個:

GraphTraversal<?, Vertex> persons = g.V().has("prop", "value");
GraphTraversal<?, Vertex> locations = persons.out("place").has(..)..;

現在我想通過直接鏈接將每個人鏈接到與該人相對應的位置,考慮到其中一些邊緣已經到位。

在 Java 中使用 Gremlin API 進行此類鏈接的哪種策略更好?

我找不到一種簡單的方法來將兩個頂點流與多對多關系聯系起來。 但是像通常一對多的那樣獲取對象集並在循環中創建邊緣對我來說是有效的:

Set<Object> personVertexIds = persons.id().toSet();
personVertexIds.forEach(id -> {
    GraphTraversal<Vertex, Vertex> person = g.V(id).as("p");
    GraphTraversal<?, Vertex> locations = persons.out("place").has(..)..;
    locations.coalesce(inE("link").where(outV().where(P.eq("p"))),
          addE("link").from("p")).property("prop", value);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM