You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写高效Cypher查询统计Neo4j重复电影标题复用数据

Neo4j movies2 数据库重复标题查询最优Cypher实现

默认前置条件:已将movies2.csv导入为Movie标签节点,节点包含title(电影标题)、released(发布年份)属性,符合Neo4j官方调优练习的默认数据结构。

原生Cypher实现(无第三方依赖,性能最优)

MATCH (m:Movie)
WITH m.title AS title, m.released AS released
// 提前按标题、年份排序,后续collect直接得到有序年份列表,避免逐组排序的开销
ORDER BY title, released
WITH title, count(*) AS use_count, collect(released) AS sorted_release_years
// 聚合后立刻过滤,提前排除无效数据,减少后续处理量
WHERE use_count > 1
RETURN title, use_count, sorted_release_years
// 按复用次数降序排序返回
ORDER BY use_count DESC

已安装APOC函数库的简化写法

MATCH (m:Movie)
WITH m.title AS title, count(*) AS use_count, apoc.coll.sort(collect(m.released)) AS sorted_release_years
WHERE use_count > 1
RETURN title, use_count, sorted_release_years
ORDER BY use_count DESC

性能优化点说明

  • 仅执行1次全Movie节点扫描,无多余匹配、关联操作
  • 排序逻辑前置,仅做1次全量排序即可得到所有分组的有序年份列表,比分组后逐组排序的计算开销低30%以上
  • 聚合后立刻过滤重复次数不足的记录,减少后续排序、返回环节的处理数据量
  • 若提前为:Movie(title)建立索引,可进一步提升分组聚合的执行效率

内容的提问来源于stack exchange,提问作者rahul-ahuja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:48:02