以下に示す関係を使用して、タイタングラフデータベースにモデルを実装しました。
[A] ---(e1)---> [B] <---(e2)--- [C] ---(e3)---> [D]
 |      |        |       |       |      |        |
prop:id |    prop:number |       | label:e3      |
        |                |    prop:id            |
   label:e1         label:e2                 prop:number
    prop:prop1
AとBは「主な頂点」(たとえばユーザー)、頂点BとCはユーザーに関連するいくつかのデータを記述する「重要度の低い頂点」です。
クエリ アルゴリズムの入力はid、頂点のプロパティですA。
上記の方法でD接続されているすべての頂点を見つけたいです。さらにとの間の辺Aの性質を覚えておきたい。prop1e1AB
より正確には、 が edge between のプロパティ(エッジにこのプロパティがある場合) であり、がfromのプロパティ(prop1, numberD)であるペアを効率的に取得したいと考えています。prop1A -> BnumberDnumberD
このクエリを効率的に実装する方法がわかりません。
頂点のみを取得するのは簡単ですD( を使用GremlinPipes):
pipe
.start(startVertex)
.outE("e1")
.inV().hasProperty("number")
.inE("e2")
.outV().hasProperty("id")
.outE("e3")
.inV().hasProperty("number");
しかし、エッジも取得e1して頂点と一致させる必要がある場合に問題が発生しますD。これらすべてのステップを個別に計算しようとしましたが、非常に非効率的です。
gremlin-java または gremlin-groovy を使用してこれを (おそらく複数のクエリを使用して) 実装する方法について何か提案はありますか? ありがとう!