我尝试在其索引ID查询的现有顶点之间创建边缘,类似于第一个答案here,但使用this索引查询查询而不是标签查询:
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>"
时,它返回一个结构如下的数组对象:
[ { '@type': 'd',
key: '<keyString>',
rid: { cluster: <actual cluster>, position: <actual position> }
@rid: { cluster: -1, position: -1 } } ]
我猜这个错误与使用CREATE EDGE
代替@rid
的{{1}}查询有关,但我不确定。
如果我只使用rid
而不是#<actual cluster>:<actual position>
子查询,则查询会成功创建边。
任何想法我可能做错了什么?
编辑:为了可复制性,当我(1)向V类架构添加属性SELECT
时,我在GratefulDeadConcerts数据库中遇到同样的问题,(2)创建一个唯一的name
使用V下的nameIndex
属性的V索引,然后(3)使用以下查询:
name
答案 0 :(得分:1)
为什么不直接查询课程?
CREATE EDGE cite
FROM
(select from Class where field = '<keyString>')
TO
(select from Class where field = '<keyString>')
从索引中选择将临时文档作为带有键的结果集返回,并清除
你可以尝试,但我不知道它是否会起作用
SELECT expand(rid) FROM index:<className>.<indexName> WHERE key = "<keyString>"