AQL EDGES,NEIGHBORS等与GRAPH_EDGES,GRAPH_NEIGHBORS之间有什么区别

时间:2015-11-05 13:45:48

标签: arangodb

在ArangoDB中,似乎有两组用于处理图形的函数。您有一方clear all close all origindir = 'c:\yourdirectory'; cd (origindir) av_files = dir(fullfile('*.mat')); mymatrix = zeros(24,66,3000,4); for ifile = 1:size(av_files,1) filename = av_files(ifile).name; load(filename) if ~isempty(str2num(filename(10:11))) sub_number = str2num(filename(10:11)); else sub_number = str2num(filename(10)); end cond_number_str = filename(5); cond_number = str2double(cond_number_str); varname = strcat('AA',cond_number_str); mymatrix(sub_number,:,:,cond_number)=eval(sprintf(varname)); end for sub = 1:24 varname2 = strcat('newmat',num2str(sub)); eval([sprintf('%s = squeeze(mymatrix(%i,:,:,:));',varname2,sub)]) end EDGESNEIGHBORSTRAVERSAL及更多(https://docs.arangodb.com/Aql/GraphFunctions.html)。

OTOH有图操作(https://docs.arangodb.com/Aql/GraphOperations.html)似乎具有SHORTEST_PATH前缀的相同函数以及一些不同的参数,例如GRAPHGRAPH_EDGESGRAPH_NEIGHBORSGRAPH_TRAVERSAL

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

1 个答案:

答案 0 :(得分:0)

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

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

The GRAPH_EDGES family是最近的实施。它仅适用于托管图表,您也可以在graph viewer中浏览。正如您已经指出的那样,后者有更多选项可以通过示例等过滤图形。

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