0

グラフ内の 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
   }
}

私の質問は:

  1. まずクエリが間違っています。gremlinpipe+java で関数を計算しましたが、かなり巨大で、groovy を使用してより簡単な方法を見つけようとしています。このクエリを絞り込むにはどうすればよいですか?

  2. 私のクエリが 2 つの頂点間のパスにあるすべての頂点を出力するとしたら、それをたとえば Map 配列に格納する方法や、コンソールに出力する方法を教えてください。

どんな助けでも大歓迎です。

よろしく

4

1 に答える 1