Ошибка при выполнении запроса гремлина на OrientDB

Следующий запрос при запуске из студии OrientDB дает ошибку.

Запрос: g.V('userId', 'SDWEQS').repeat(out()).until(has('organizationId','org1'));

Ошибка:

groovy.lang.MissingMethodException: нет подписи метода: com.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.out() применимо для типов аргументов: () значения: [] Возможные решения: put(java.lang.String, java .lang.Object), get(java.lang.String), wait(), any(), dump(), wait(long)

Я попытался выполнить запрос с помощью приложения OrientJs Node, но получил ту же ошибку. Я создал такой же график на сервере Gremlin, и этот запрос там работает.

Мой вопрос в том, поддерживает ли orientdb repeat()? Пожалуйста, предложите альтернативы, чтобы заставить вышеуказанный запрос работать.


person raj    schedule 06.07.2017    source источник
comment
Здравствуйте, вы его видели?gremlindocs.spmallette.documentup.com.   -  person Michela Bonizzi    schedule 06.07.2017
comment
Да, @MichelaBonizzi, приведенный выше запрос я выполнил на сервере гремлинов, и он работает нормально. Проблема только тогда, когда я запускаю его против orientdb.   -  person raj    schedule 07.07.2017
comment
Какую версию ты используешь?   -  person Oleksandr Gubchenko    schedule 07.07.2017
comment
Версия OrientDB, которую мы используем, — 2.2.21.   -  person raj    schedule 07.07.2017
comment
Если вы выполните тот же запрос к базе данных orientdb с помощью консоли Gremlin, это сработает?   -  person Michela Bonizzi    schedule 07.07.2017


Ответы (2)


Я обнаружил, что OrientDB поддерживает только запросы гремлина Tinkerpop 2.x. А "repeat()" не было частью 2.x. Мне придется переработать запрос, чтобы вместо этого использовать «loop()».

person raj    schedule 11.07.2017
comment
У вас есть источник по этому поводу? - person Tayyab Anwar; 08.08.2019

Смотрите мой ответ здесь: https://stackoverflow.com/a/54775290/1211805

В основном просто используйте REST API OrientDB (порт 2480)

person BigMan73    schedule 19.02.2019