我有一个包含~10000个节点的图表,我试图找到已知起始节点和未知终端节点之间的最长路径,但是已知类型的读取器。
当我有1000个节点时,这在4秒内计算得很好,但现在需要很长时间,大概是因为可能的终端节点列表很多。
我想知道是否有更好的算法来做到这一点,我唯一可能的想法是为p2添加一些过滤以缩短列表的大小但是这并不理想,因为我想匹配很多边缘例。
MATCH (p1:Book{id: '0532013000'})-[r*1..5]-(p2:Reader)
CALL apoc.algo.dijkstraWithDefaultWeight(
p1, p2, 'REL_ONE|REL_TWO|REL_THREE|REL_FOUR', 'mean', 1) YIELD path, weight
RETURN path, weight
ORDER by weight DESC
LIMIT 5