Возможно ли на взвешенном графе Neo4j найти все пути в пределах n переходов данного узла с ограничениями, согласно которым возвращаются / расширяются только верхние m отношений (по весу) от каждого узла?
Например, учитывая следующий график:
введите описание изображения здесь
Этот запрос ...
MATCH (n0:Foo {n: "a"})
CALL apoc.path.expand(n0, "TO>", "", 1, 3)
YIELD path as p
WHERE ALL (x in relationships(p) where x.score > 0.02) // Additional constraint not directly related to the question
RETURN p, length(p) AS hops
ORDER BY hops
... возвращает:
╒═══════════════════════════════════════════════════════════════════════╤══════╕
│"p" │"hops"│
╞═══════════════════════════════════════════════════════════════════════╪══════╡
│[{"n":"a"},{"score":0.03},{"n":"d"}] │1 │
├───────────────────────────────────────────────────────────────────────┼──────┤
│[{"n":"a"},{"score":0.03},{"n":"d"},{"n":"d"},{"score":0.11},{"n":"k"}]│2 │
├───────────────────────────────────────────────────────────────────────┼──────┤
│[{"n":"a"},{"score":0.03},{"n":"d"},{"n":"d"},{"score":0.1},{"n":"j"}] │2 │
├───────────────────────────────────────────────────────────────────────┼──────┤
│[{"n":"a"},{"score":0.03},{"n":"d"},{"n":"d"},{"score":0.12},{"n":"l"}]│2 │
└───────────────────────────────────────────────────────────────────────┴──────┘
Возможно ли также ограничить исходящие отношения из каждый узел, например, до 2 лучших по количеству очков .
Ожидаемый результат:
╒═══════════════════════════════════════════════════════════════════════╤══════╕
│"p" │"hops"│
╞═══════════════════════════════════════════════════════════════════════╪══════╡
│[{"n":"a"},{"score":0.03},{"n":"d"}] │1 │
├───────────────────────────────────────────────────────────────────────┼──────┤
│[{"n":"a"},{"score":0.03},{"n":"d"},{"n":"d"},{"score":0.11},{"n":"k"}]│2 │
├───────────────────────────────────────────────────────────────────────┼──────┤
│[{"n":"a"},{"score":0.03},{"n":"d"},{"n":"d"},{"score":0.12},{"n":"l"}]│2 │
└───────────────────────────────────────────────────────────────────────┴──────┘