Я пытаюсь создать ребра между существующими вершинами запрашиваемых их индексированных идентификаторами, похожих на первый ответ here, но с использованием this индекса подстановок запроса вместо запроса этикетки:OrientDB - Создание края с использованием РИД из индекса запросы
CREATE EDGE cite
FROM
(SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>")
TO
(SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>")
Это дает мне следующее сообщение об ошибке: com.orientechnologies.orient.core.exception.OCommandExecutionException: Source vertex '#-1:-1' not exists
Возможно отношение:
Когда я только запрос SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>"
сам по себе он возвращает A rray объект структурирован как:
[ { '@type': 'd',
key: '<keyString>',
rid: { cluster: <actual cluster>, position: <actual position> }
@rid: { cluster: -1, position: -1 } } ]
Я предполагаю, что ошибка есть что-то делать с CREATE EDGE
запрос с использованием @rid
вместо rid
, но я не уверен.
Запрос успешно создает ребра, если я просто использую #<actual cluster>:<actual position>
вместо подзапроса SELECT
.
Любые идеи, что я могу делать неправильно?
Edit: В интересах воспроизводимости, у меня та же проблема, в базе данных GratefulDeadConcerts, когда я (1) добавить свойство name
к V класса схемы, (2) создать уникальный nameIndex
индекс V, используя name
недвижимость под V, а затем (3) воспользуйтесь следующим запросом: create edge followed_by from (select from index:nameIndex where key = 'HEY BO DIDDLEY') to (select from index:nameIndex where key = 'IM A MAN')
Спасибо, оба ваши предложения отлично работают. Я думаю, что сначала попробовал что-то похожее на ваше первое предложение, но я не смог заставить его работать, поэтому я попытался использовать формат 'index:'. – ropeladder