Арангодб находит условные кратчайшие пути - PullRequest
0 голосов
/ 13 января 2020

Мне нужно рассчитать кратчайшие пути с условиями (условия могут быть очень сложными). Я пробовал следующий пример запроса, но он отнимает у меня много времени

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)}

Можно ли выполнить предварительную фильтрацию? Я имею в виду фильтр краев коллекции, а затем начать поиск кратчайшего пути. Может быть, какие-то другие советы, которые могут мне помочь?

ps Я не могу использовать обход, потому что я не знаю о длине пути, а также мне нужны кратчайшие пути в соответствии с весами.

1 Ответ

0 голосов
/ 23 января 2020

Обсуждая в slack, команда arangodb подтвердила, что это в настоящее время не поддерживается, создала запрос функции в https://github.com/arangodb/arangodb/issues/10957

...