AQL EDGES、NEIGHBORS等与GRAPH_EDGES、GRAPH_NEIGHBORS有什么区别

What is the difference between the AQL EDGES, NEIGHBORS, etc. and GRAPH_EDGES, GRAPH_NEIGHBORS

在 ArangoDB 中,似乎有两组用于处理图形的函数。一侧有 EDGESNEIGHBORSTRAVERSALSHORTEST_PATH 等 (https://docs.arangodb.com/Aql/GraphFunctions.html)。

OTOH 有图形操作 (https://docs.arangodb.com/Aql/GraphOperations.html) 似乎具有相同的函数,前缀为 GRAPH 并且具有一些不同的参数,例如 GRAPH_EDGESGRAPH_NEIGHBORS, GRAPH_TRAVERSAL, GRAPH_SHORTEST_PATH.

这些有什么区别。它们用于不同的场景吗?是否存在性能差异等?

没有一般性的建议可以选择哪个 - 这取决于您的要求。

EDGES functions 可能适用于不受图形模块管理的集合,因此在图形查看器中可能不可见(但您可以在同样受管理的集合上使用它们)。然而,由于不进行图形管理,它的开销较小。

The GRAPH_EDGES family is the more recent implementation. It only works on managed graphs that you can also browse in the graph viewer。正如您已经注意到的,后者有更多选项,即通过示例等过滤图表。

在 ArangoDB 3 中,GRAPH_* 系列函数被移除。我们 explain in this cookbook 如何在 ArangoDB 3 中使用 AQL 实现它们的功能。