Neo4j:最佳路径搜索

皮埃尔

有一个喜欢评分电影的人的图表,我想为每一对人提取他们评分最高的电影。我正在使用以下查询,该查询需要按每对人的费率对电影进行排序。

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 来提高我的第一个查询和返回路径的性能,而不是它们的起始、中间和结束节点?提前谢谢了。

皮埃尔

这是一个替代解决方案,它保留路径而不是报告提取的节点。

MATCH path=(p1:People) -[:LIKES]-> (m:Movie) <-[:LIKES]- (p2:People) 
WHERE id(p1) < id(p2)
WITH head(nodes(p)) as p1, last(nodes(p)) as p2, path 
ORDER BY m.Rating desc
WITH p1, p2, head(collect(p)) as optPath
RETURN optPath

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Neo4j中的定向路径

来自分类Dev

Neo4j Cypher替代路径

来自分类Dev

Neo4j:也可以搜索儿童

来自分类Dev

neo4j编辑距离搜索

来自分类Dev

Neo4j:也可以搜索儿童

来自分类Dev

Neo4j cypher-搜索节点之间没有路径的节点

来自分类Dev

找出 Neo4j 中的 2 个节点之间是否存在路径的最佳方法是什么?

来自分类Dev

多标签节点的最佳Neo4j索引策略

来自分类Dev

在Neo4j中存储UUID的最佳方法?

来自分类Dev

Neo4j:存储嵌套属性的最佳替代方法?

来自分类Dev

Neo4j分层注释架构和最佳实践

来自分类Dev

多标签节点的最佳Neo4j索引策略

来自分类Dev

neo4j cypher避免重复路径

来自分类Dev

neo4j:查找路径并删除重复项

来自分类Dev

neo4j单向最短路径

来自分类Dev

返回neo4j中最常见的路径

来自分类Dev

如何查询多个OR'ed Neo4j路径?

来自分类Dev

Neo4j找不到结束的完整路径

来自分类Dev

路径中集合节点的Neo4J公共邻居

来自分类Dev

Neo4J从路径中的节点获取节点

来自分类Dev

Neo4j双向的最短路径

来自分类Dev

Neo4j路径查询,包括循环

来自分类Dev

Neo4j非托管扩展中的类路径

来自分类Dev

Neo4j cypher查询已知路径

来自分类Dev

Neo4j中的多路径关系检查

来自分类Dev

Neo4J查询不显示路径

来自分类Dev

(最短)路径中的Neo4J错误

来自分类Dev

带过滤器的Neo4j路径

来自分类Dev

Neo4j 查询完整路径