ArangoDB——图遍历 Graph

ArangoDB——图遍历 Graph图遍历 Graph 边缘文档 Edge 存储在边缘集合 并具有附加属性 from 和 to 两个或多个文档通过边缘连接起来 图 顶点可不必连接其他休战 也可通过多条边与一个以上的其他顶点相连 也可连接到自身的顶点 图是将节点视为圆 将边视为线或弧

大家好,我是讯享网,很高兴认识大家。

图遍历 Graph

  • 边缘文档(Edge)存储在边缘集合,并具有附加属性: _from 和 _to,两个或多个文档通过边缘连接起来。
    • 顶点可不必连接其他休战,也可通过多条边与一个以上的其他顶点相连,也可连接到自身的顶点。


      讯享网

    • 图是将节点视为圆,将边视为线或弧。术语节点和顶点可以互换使用。顶点由边连接,构成图。图有许多属性,包括每个关系的方向。
  • 图类型
    • 无向——边连接成对的节点而没有方向的概念

    • 定向——边有一个与之相关的方向(线/弧在描述中有箭头)

    • 有向无环图——边有方向并且没有环。

  • 图规范
    • 在 ArangoDB 中,每条边只有一个方向,不能同时指向两个方向。该模型也称为有向图。

    • 边始终是有向的,但是当您遍历图形或沿相反方向(INBOUND)跟随边而不是沿它们实际指向的方向(OUTBOUND)前进时,可以忽略方向(沿任何方向跟随)。遍历图形称为遍历。

  • 遍历深度
    • 遍历意味着以特定方式沿着图形的边缘行走,行走的步数。

      • 遍历 (S) 中的起始顶点的遍历深度为零。
      • 在深度 = 1 处是 S 的直接邻居(A、B 和 C)。
    • 小深度大于或等于 2 的遍历,有两种遍历图形
      • 深度优先(默认)

        • 继续沿着该路径上的起始顶点到最后一个顶点的边或直到达到最大遍历深度,然后沿着其他路径走。
      • 宽度优先(可选)

        • 跟随从起始顶点到下一层的所有边,然后跟随它们邻居的所有边到另一层并继续这种模式,直到没有更多的边可以跟随或达到最大遍历深度。
        • OPTIONS {bfs: true}
  • 图遍历查询
    • FOR vertex[, edge[, path]] IN [min[..max]] OUTBOUND|INBOUND|ANY startVertex edgeCollection[, more…]
    • FOR 发出最多三个变量
      • 顶点(对象):遍历中的当前顶点
      • edge (对象,可选): 遍历中的当前边
      • 路径(对象,可选):具有两个成员的当前路径的表示:
        • 顶点:此路径上所有顶点的数组
        • edges:此路径上所有边的数组
    • IN min..max:定义遍历的最小和最大深度。如果不指定,min默认为1,max默认为min

    • OUTBOUND/INBOUND/ANY定义您的搜索方向

    • edgeCollection:一个或多个集合名称,其中包含要在遍历中考虑的边
    • 图语句查询参数配置(options)
      • bfs 是否使用深度优先遍历查询
        • 宽度优先
          • OPTIONS {bfs: true}
        • 深度优先
          • OPTIONS {bfs: false}
      • uniqueVertices 认定遍历时节点唯一性
        • 不做任何限制。(默认)
          • OPTIONS {uniqueVertices: 'none'}
          • 此定义图查询中没有去重操作,会出现很多重复的数据及无效操作
        • 确保每个单独的路径上没有重复的顶点。
          • OPTIONS {uniqueVertices: 'path'}
          • 所有遍历的路径中没有重复。
        • 确保在整个遍历过程中访问每个可到达的顶点一次。
          • OPTIONS {uniqueVertices: 'global'}
          • 所有遍历的节点中没有重复。
      • uniqueEdges
        • 每个边只会遍历一遍。(默认)
          • OPTIONS {uniqueEdges: 'path'}
        • 不做任何限制。(不要用,可能会导致边的循环:转圈圈)
          • OPTIONS {uniqueEdges: 'none'}
      • 3.7以上才可用
        • edgeCollections 指定参与的边缘文档集合
        • vertexCollections 指定参与的节点文档集合
        • parallelism 并发设置
          • 如果省略或设置为1,遍历执行就不会并行化。如果设置为大于1的值,那么可以使用最多的工作线程并发地执行遍历。这个值的上限是目标机器上可用内核的数量。
小讯
上一篇 2025-04-08 17:45
下一篇 2025-04-08 21:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/43579.html