1

これは neo4j での私の最初のアプリケーションです。パフォーマンスと使いやすさを向上させるためにトラバーサル API を使用するのが好きですが、ほとんどの操作が実装されていない残りのトラバーサルを見て困惑しました。私は spring-data- を使用しています。 neo4j-rest (3.1.2) neo4j カーネルお​​よびコア バージョン os 2.0 Ex. Resttraversal Src から (2 つのエバリュエーターのみが実装されています) 適切なバージョンを使用していない場合、どちらのバージョンがこれをより多くサポートしているか

 public RestTraversalDescription evaluator(PathEvaluator evaluator) {
        if (evaluator == Evaluators.all()) return add("return_filter",toMap("language","builtin", "name","all"));
        if (evaluator == Evaluators.excludeStartPosition()) return add("return_filter",toMap("language","builtin", "name","all_but_start_node"));
        throw new UnsupportedOperationException("Only builtin paths supported");
    }


 @Override
    public TraversalDescription expand(PathExpander<?> expander) {
        throw new UnsupportedOperationException();
    }

    @Override
    public <STATE> TraversalDescription expand(PathExpander<STATE> expander, InitialStateFactory<STATE> initialState) {
        throw new UnsupportedOperationException();
    }

助けが必要で、解決策を探して 1 日以上無駄にしていると感じています....

4

2 に答える 2

1

トラバーサルのパフォーマンスを最大化するための推奨される方法は、 Traversal APIを内部で使用するアンマネージド エクステンションを使用することです。

基本的に、JAX-RS アノテーションを使用して Java (または Groovy/Clojure/Scala/... ) クラスを作成します。コードは jar としてパッケージ化され、Neo4j のpluginsディレクトリにデプロイされます。アノテーションが付けられたメソッドは、Neo4j サーバーへの新しい REST エンドポイントになります。

あなたが使用しようとしていた REST トラバーサルは、かなり古く、製品内で広く使用されていない機能です。

于 2014-08-28T07:33:04.020 に答える
0

Neo4j 2.3 にアップグレードして以来、管理されていない拡張機能の一部として cypher を使用しました。cypher が提供するパターン マッチングの柔軟性も実現し、効率的に機能しているようです。

于 2016-05-06T00:57:17.390 に答える