在orientDB中找到两个给定顶点之间的边缘的最快方法是什么

时间:2018-04-25 10:22:22

标签: orientdb query-performance orient-sql

我目前有两个名为communityuser的顶点集合。 作为社区成员的每个用户都使用边community_user链接到该社区。

我正在尝试更新给定用户的community_user边缘_id和{_ 1}} _id。

community

此查询确实有效,但SELECT read from community_user where outV() in (select @rid FROM `community` WHERE ( `_id` = '5ab283c35b6b9435d4c9a958' )) and inV() in (select @rid from user where _id = 'x5mxEBwhMfiLSQHaK') 边缘填满后速度相当慢。

有没有办法索引此搜索或更快的解决方案以找到我需要的值?

我当前的相关索引位于community_usercommunity._id

该查询的user._id会产生:

EXPLAIN

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用MATCH语句

MATCH
  {class:community, where:(_id = '5ab283c35b6b9435d4c9a958' )}
    .outE(){as:theEdge}.inV(){class:user, where:(_id  = 'x5mxEBwhMfiLSQHaK')}
RETURN $elements