• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

用于排序的顶点中心索引

graph-databases 来源:irriss 3次浏览

假设我有具有许多边的超节点,并且希望快速返回给定节点的顶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是一个边集合,它都已经被正确索引。)


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)