用于排序的顶点中心索引
假设我有具有许多边的超节点,并且希望快速返回给定节点的顶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