Как запрашивать переходы с помощью PGQL?

#oracle-graph

#oracle-graph

Вопрос:

Мы пытаемся написать запрос PGQL, чтобы получить несколько переходов для выбранного узла.

Чтобы получить узлы и ребра для выбранного узла, SELECT n0.id as n0id, e0.id as e0id, n1.id as n1id FROM MATCH (n0)->[e0]->(n1) WHERE n0.id=12345

Чтобы увеличить количество узлов и ребер, приведите пример 2 перехода, ... FROM MATCH (n0)->[e0]->(n1)->[e1]->(n3) ... однако в этом случае узлы с 1 переходом не будут возвращены.

Интересно, есть ли какой-либо способ запросить требуемые переходы для выбранного узла?

Любое решение будет оценено.

Ответ №1:

Кажется, вы ищете синтаксис PGQL для путей переменной длины:

https://pgql-lang.org/spec/1.4/#variable-length-paths

Среди этих шаблонов, я полагаю, синтаксис достижимости полезен в вашем случае.

 SELECT n0.id as n0id, e0.id as e0id, n1.id as n1id
FROM MATCH (n0)->/:edge-label{1,3}/->(n1)
WHERE n0.id=12345
 

https://pgql-lang.org/spec/1.4/#between-n-and-m

Спасибо!