OrientDBを使用して2つのノード間の最短経路を探したいと思います。次のように私はそれを実装しました:OrientDBのショートパスが非常に遅い
String s = "select expand(ShortestPath(" + first_vertex.getId() +
", " + second_vertex.getId() + ", "+ direction +") ) ";
は、しかし非常に遅いのNeo4jと比較して、頂点のみ
for (Vertex v : (Iterable<Vertex>) call_shortest_path.g.command(
new OCommandSQL(s)).execute()) {
System.out.println(v.getProperty("name").toString());
}
それが動作する印刷します。改善の方法はありますか?私はそれがあなたのものよりも高速だかはわからないものの、
String s = "select shortestPath(" + first_vertex.getId() + ", " + second_vertex.getId() + ", "+ direction +") unwind shortestPath";
EDIT
これは私のために働いている:
こんにちは、どのバージョンをお使いですか? thnx –
What's Neo4jとの時間の違いは?あなたは2.2.0-rc1で試しましたか? – Lvca
Neo4jバージョン2.3.3とOrientDBバージョン2.1.12を使用しています。時差は本当に素晴らしいです(Neo4j:50ミリ秒、OrientDBは170ミリ秒です)。与えられたノードの関係を検索する際、OrientDBははるかに高速ですが、短いパスを検索する場合はそうではありません。 – Questioner