我有一个关于如何创建OrientDB查询的问题。 查询应该在深度中计算朋友关系的朋友的顶点。
我正在运行OrientDB 2.1.6。
架构: Person是Vertex,属性id(int) 朋友是边缘
我正在寻找的关系是这样的:
人 - 朋友 - >人 - 朋友 - >人 (#12:0)(#12:1)(#12:2)
我有1百万个顶点和100毫米边缘。 每个顶点都有100个具有随机顶点的边。
我想从顶点#12:0开始计算我在深度2,3,4和5中有多少个顶点。 我想将查询性能(以毫秒为单位)与Neo4j进行比较。
有人能帮助我吗? 在OrientDB上查询此问题的最快方法是什么? 抱歉英文不好。
谢谢你们
答案 0 :(得分:1)
如果要获取深度为2的顶点数,深度为3的顶点数等,可以使用此查询
select $depth,count(*) from (traverse out() from #12:0 while $depth<=5) where $depth>=2 group by $depth
如果你想在深度2,3,4,5处总计有多少个顶点 你可以使用这个查询
select count(*) from (traverse out() from #12:0 while $depth<=5) where $depth>=2
答案 1 :(得分:0)
试试这个:select @rid,out("Friend").size() from (traverse out() from #12:0 while $depth<=5)
此致