Rest Traversal Neo4j java.lang.UnsupportedOperationException

Это мое первое приложение на neo4j, мне нравится использовать API обхода для повышения производительности и простоты использования, однако я был в тупике, когда посмотрел на остальные обходы, большинство операций не реализованы, я использую spring-data- neo4j-rest ( 3.1.2) ядро ​​neo4j и версия ядра os 2.0 Ex. от Resttraversal Src (реализовано только два оценщика) Я использую правильную версию, если нет, какая версия поддерживает больше этого

 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();
    }

НУЖНА ПОМОЩЬ, и я чувствую, что потратил больше дня на поиск решения....


person praveen gottam    schedule 28.08.2014    source источник


Ответы (2)


Рекомендуемый способ получить максимальную производительность для ваших обходов — использовать неуправляемые расширения, которые внутренне используют Traversal API.

Вы в основном пишете класс Java (или Groovy/Clojure/Scala/...), используя аннотации JAX-RS. Ваш код упаковывается в jar-файл и развертывается в каталоге Neo4j plugins. Аннотированные методы становятся новыми конечными точками REST для вашего сервера Neo4j.

Обходы REST в том виде, в каком вы намеревались их использовать, — это довольно старая и редко используемая функция в продукте.

person Stefan Armbruster    schedule 28.08.2014
comment
Спасибо Стефан! Дай мне попробовать. Однако, даже если внутренне используется Traversal API, программист должен управлять тем, как должен происходить обход на основе оценки пути, большинство методов в RestTraversal не реализованы... как мне это решить... или у вас есть образец, который будет выполнять простой обход с использованием неуправляемого расширения или любых документов API, которые могут помочь? - person praveen gottam; 29.08.2014

Поскольку я обновился до Neo4j 2.3, я использовал шифр как часть неуправляемого расширения. Кажется, теперь он работает эффективно, а также обеспечивает гибкость сопоставления с образцом, которую обеспечивает шифр.

person praveen gottam    schedule 06.05.2016