ropeladder
ropeladder

Reputation: 1153

OrientDB - Creating an edge using rid's from index queries

I'm trying to create edges between existing vertices queried by their indexed IDs, similar to the first answer here, but using this index lookup query instead of the label query:

CREATE EDGE cite
FROM
(SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>")
TO
(SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>")

This gives me the following error: com.orientechnologies.orient.core.exception.OCommandExecutionException: Source vertex '#-1:-1' not exists

Possibly relevant:

When I just query SELECT FROM index:<className>.<indexName> WHERE key = "<keyString>" by itself it returns an array object structured like:

[ { '@type': 'd',
    key: '<keyString>',
    rid: { cluster: <actual cluster>, position: <actual position> }
    @rid: { cluster: -1, position: -1 } } ]

I'm guessing that the error has something to do with the CREATE EDGE query using the @rid instead of the rid but I'm not sure.

The query successfully creates the edges if I simply use the #<actual cluster>:<actual position> instead of the SELECT subquery.

Any ideas what I might be doing wrong?

Edit: In the interest of replicability, I have the same problem in the GratefulDeadConcerts database when I (1) add a property name to the V class schema, (2) create a unique nameIndex index of V using the name property under V, and then (3) use the following query: create edge followed_by from (select from index:nameIndex where key = 'HEY BO DIDDLEY') to (select from index:nameIndex where key = 'IM A MAN')

Upvotes: 0

Views: 989

Answers (1)

wolf4ood
wolf4ood

Reputation: 1949

Why don't you query the class directly?

CREATE EDGE cite
FROM
(select from Class where field = '<keyString>')
TO
(select from Class where field = '<keyString>')

Select from index return a temp document as result set with key,and rid

you can try but i don't know if it will work

SELECT expand(rid) FROM index:<className>.<indexName> WHERE key = "<keyString>"

Upvotes: 1

Related Questions