有一张喜欢评分电影的人的图表,我想为每一对人提取他们评分最高的电影。我正在使用以下查询,该查询需要按每对人的费率对电影进行排序。
MATCH (p1:People) -[:LIKES]-> (m:Movie) <-[:LIKES]- (p2:People) WHERE id(p1) < id(p2)
WITH p1, p2, m ORDER BY m.Rating desc
RETURN p1, p2, head(collect(m) as best
我可以将电影评分(1/rating 或 maxRating-rating)放入 :LIKES 关系中,因此我可以确定哪部电影在两个人的评分最高。
MATCH (p1:People), (p2:People) call apoc.algo.dijkstra(p1, p2, 'LIKES', 'rating') YIELD path as path, weight as weight return path, weight
有没有办法使用类似 Dijkstra 的算法,通过得分最高的节点找到 allOptimumPath 来提高我的第一个查询和返回路径的性能,而不是它们的起始、中间和结束节点?提前谢谢了。