Gremlin - Как отфильтровать ребра на свойстве при получении кратчайшего пути - PullRequest
1 голос
/ 10 октября 2019

Следующий запрос ищет набор кратчайших путей из данной вершины (377524408) в другую вершину, имеющую ребро со свойством test_property и выходящую после 3 итераций (т. Е. Если вершина не найдена в 3 обходах,мы не возвращаем пути).

s.V(377524408).repeat(both().simplePath())
    .until(or(__.bothE().has('test_feature', gt(0)), 
              loops().is(lt(4))))
    .path().dedup().toList()

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

Например, только те ребра перемещения, которые имеют свойство filter_property <100. Как бы я изменил вышеуказанный запрос, чтобы включить этот пограничный фильтр? </p>

1 Ответ

2 голосов
/ 10 октября 2019

Вместо both().simplePath() вы бы использовали bothE().has('filter_property', lt(100)).otherV().

Также обратите внимание, что loops().is(lt(4)) всегда будет оценивать true в первой итерации. Вы, вероятно, хотите, чтобы это было loops().is(3).

...