我試圖創造以自己的索引標識,類似於第一個答案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>"
本身它返回一個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
子查詢,查詢就成功創建了邊。
任何想法,我可能做錯了什麼?
編輯:在舉一反三的利益,我在GratefulDeadConcerts數據庫同樣的問題,當我(1)添加屬性name
到V類架構,(2)創建一個使用name
財產V的獨特nameIndex
指數在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 2015-02-13 21:04:43