〜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