用于排序的顶点中心索引

假设我有具有许多边的超节点,并且希望快速返回给定节点的顶N边。我怎样才能做到这一点与arangodb顶点中心索引https://docs.arangodb.com/3.1/Manual/Indexing/VertexCentric.html?用于排序的顶点中心索引

我可以创建skiplist顶点为中心的指数

arangosh> db.collection.ensureIndex({ type: "skiplist", fields: [ "_from", "points" ] }) 

,但优化器不排序的查询

FOR edge IN collection 

FILTER edge._from == "vertices/123456"

SORT edge.points DESC

LIMIT 0, 10

RETURN edge

看来还阿朗戈优化不拿起skiplist顶点为中心的指数把它捡起来但是在遍历语法中,文档说它应该:

FOR v, e, p IN 3..5 OUTBOUND @start GRAPH @graphName 

FILTER p.edges[*].points ALL >0

RETURN v

回答:

快速返回顶部N条边给定节点

这将是更好的开始节点:

FOR v, e IN 1..1 ANY @start @edges 

SORT e.points DESC

LIMIT 10

RETURN e

这应该是一样好,你可以使用当前版本得到( 3.3)的ArangoDB,假设你让ArangoDB索引_from - 我怀疑为.points添加跳过列表会产生任何(有益的)区别,除非你可能在FILTER中使用它。

(我相信索引_from使用skiplist将是不明智的在这里。如果edges是一个边集合,它都已经被正确索引。)

以上是 用于排序的顶点中心索引 的全部内容, 来源链接: utcz.com/qa/261828.html

回到顶部