Arangodb 找到条件最短路径
Arangodb find conditional shortest paths
我需要计算带条件的最短路径(条件可能很难)。我尝试了下一个示例查询,但它花了我很多时间
FOR p IN ANY K_SHORTEST_PATHS
'graph_vertices/1' TO 'graph_vertices/2'
graph_edges
OPTIONS {
weightAttribute: 'weight',
defaultWeight: 1
}
FILTER p.edges[*]._key NONE IN ['736023', '659112', '695090', '731912', '680907', '699903']
LIMIT 3
RETURN {name: CONCAT_SEPARATOR(' -> ', p.edges[*]._key), weight: sum(p.edges[*].weight)}
有什么方法可以做预过滤吗?我的意思是过滤边缘集合,然后开始寻找最短路径。可能还有其他一些可以帮助我的提示?
p.s。我不能使用遍历,因为我不知道路径的长度,而且我需要根据权重的最短路径。
在 slack 中讨论,arangodb 团队确认目前不支持此功能,在 https://github.com/arangodb/arangodb/issues/10957
中创建了功能请求
我需要计算带条件的最短路径(条件可能很难)。我尝试了下一个示例查询,但它花了我很多时间
FOR p IN ANY K_SHORTEST_PATHS
'graph_vertices/1' TO 'graph_vertices/2'
graph_edges
OPTIONS {
weightAttribute: 'weight',
defaultWeight: 1
}
FILTER p.edges[*]._key NONE IN ['736023', '659112', '695090', '731912', '680907', '699903']
LIMIT 3
RETURN {name: CONCAT_SEPARATOR(' -> ', p.edges[*]._key), weight: sum(p.edges[*].weight)}
有什么方法可以做预过滤吗?我的意思是过滤边缘集合,然后开始寻找最短路径。可能还有其他一些可以帮助我的提示?
p.s。我不能使用遍历,因为我不知道路径的长度,而且我需要根据权重的最短路径。
在 slack 中讨论,arangodb 团队确认目前不支持此功能,在 https://github.com/arangodb/arangodb/issues/10957
中创建了功能请求