![](/img/trans.png)
[英]How to get all vertices in ArangoDB graph traversal without max?
[英]ArangoDB : How to get all the possible paths between 2 vertices?
如何获得maxDepth = 2的2个顶点之间的所有可能路径(例如X和Y)?
我尝试使用TRAVERSAL
但是执行大约需要10秒钟。 这是查询:
FOR p IN TRAVERSAL(locations, connections, "X", "outbound", { minDepth: 1, maxDepth: 2, paths: true })
FILTER p.destination._key == "Y"
RETURN p.path.vertices[*].name
位置(顶点)集合包含23753个文档,而连接(边)集合具有123414文档。
如果通过选项filterVertices
将目标过滤器直接放入Traversal中,则可以filterVertices
加快查询速度,以提供遍历应触及的顶点示例。 使用vertexFilterMethod
可以定义与示例不匹配的所有顶点应该发生的情况。
因此,在您的查询中,您只想匹配目标顶点“ Y”,并且所有其他顶点都应通过,但不包括在结果中( exclude
。
这使得后面的FILTER变得过时了。 现在,内部优化器无法自动执行此操作,但此魔术已在我们的路线图上。
这是一个包含优化的查询:
FOR p IN TRAVERSAL(locations, connections, "X", "outbound", { minDepth: 1, maxDepth: 2, paths: true, filterVertices: [{_key: "Y"}], vertexFilterMethod: ["exclude"]})
RETURN p.path.vertices[*].name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.