根据边缘属性使用前N个边缘在Neo4j中获取子图

问题描述 投票:2回答:1

我有一个使用方向Position边缘连接的:TO个节点的图。每个节点都具有uuid属性,并且从它到其他节点可能有许多边,并且每个边都有属性probability。我想仅使用前N个概率来自每个节点的N个边从特定的起始节点获取子图。例如,如果每个节点有10条边,我可能要以最高的概率使用这3条边。

最重要的是,我希望排除以已访问的节点结尾的所有边缘,并且最好能够对最大级别数进行参数化(我相信apoc过程中的maxLevel。]

apoc路径扩展过程可能会很好,除了最后一个要求;没有明显的方法来限制边的数量,仅限制行数。

[我尝试将MATCH查询链接在一起,但无法弄清楚如何限制每个节点的边数,仅限制行数。

[我想我还有其他一些想法需要解决,但是我觉得这必须是一个足够普遍的用例,我缺少一些基本知识。

neo4j cypher graph-databases
1个回答
0
投票

尝试一下:

MATCH (n:label1)-[e:type]->(m:label2) 
WHERE n.name='xxx' 
WITH n,e1,m 
ORDER BY e1.prop DESC 
LIMIT 3 
MATCH (m)-[e2:type]->(k) 
RETURN n,e1,m,e2,k
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.