グラフ内の 2 つの頂点間の最短パスを計算するために、グルーヴィーなクラスを呼び出す Java アプリケーションがあります。
ジャワ:
public class Test {
public static void main(String[] args) {
TinkerGraph g = new TinkerGraph();
Vertex src = null;
src = g.addVertex(null);
src.setProperty("name",1);
src.setProperty("Type", "switch");
Vertex src1 = null;
src1 = g.addVertex(null);
src1.setProperty("name",2);
src1.setProperty("Type", "switch");
Vertex src2 = null;
src2 = g.addVertex(null);
src2.setProperty("name",3);
src2.setProperty("Type", "switch");
Vertex src3 = null;
src3 = g.addVertex(null);
src3.setProperty("name",4);
src3.setProperty("Type", "switch");
Edge e=null;
e=g.addEdge(null, src, src1, "connects");
Edge e1=null;
e1= g.addEdge(null, src1, src2, "connects");
Edge e2=null;
e2= g.addEdge(null, src2, src3, "connects");
System.out.println(GetRoute.getPathToHost(g));
}
}
グルーヴィー:
class GetRoute {
static {
Gremlin.load()
}
public static Map<Vertex, Integer> getPathToHost(TinkerGraph g) {
g1.V[["name":1]].both.loop(2){!it.object.equals("name":4)}.Paths >> 1
}
}
私の質問は:
まずクエリが間違っています。gremlinpipe+java で関数を計算しましたが、かなり巨大で、groovy を使用してより簡単な方法を見つけようとしています。このクエリを絞り込むにはどうすればよいですか?
私のクエリが 2 つの頂点間のパスにあるすべての頂点を出力するとしたら、それをたとえば Map 配列に格納する方法や、コンソールに出力する方法を教えてください。
どんな助けでも大歓迎です。
よろしく