0

結果をネストされた形式で返すgremlinクエリをどのように使用できるのか疑問に思っています。次のようなプロパティ グラフがあるとします。

USER頂点などのPAGEいくつかのプロパティを持つ頂点。AGEUSER

FOLLOWUSERとの間の端PAGE;

年齢が 20 歳を超えるすべてのユーザーと、それらのユーザーがフォローしているすべてのページを提供する単一の効率的なクエリを探しています。アプリケーション側から単純なループを使用してそれを行うことができ、反復ごとに単純なトラバーサル クエリを使用します。残念ながら、このようなソリューションは私にとって効率的ではありません。この場合、多くのクエリが生成され、ネットワークの遅延が大きくなる可能性があるためです。

4

2 に答える 2

5

「効率的」の定義が何であるかはわかりませんが、これは典型的な OLAP の使用例であり、高速な OLTP リアルタイム応答を期待すべきではないことに注意してください。

つまり、クエリは次のように単純にする必要があります。

g.V().has("USER", "AGE", gt(20)).as("user").
  map(out("FOLLOW").fold()).as("pages").
  select("user", "pages")

最新のサンプル グラフを使用した小さな例:

gremlin> g = TinkerFactory.createModern().traversal().withComputer()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], graphcomputer]
gremlin> g.V().has("person", "age", gt(30)).as("user").
           map(out("created").fold()).as("projects").
           select("user","projects")
==>[user:v[6], projects:[v[3]]]
==>[user:v[4], projects:[v[5], v[3]]]
于 2016-04-17T08:00:50.157 に答える