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

Neo4j子图匹配:查找含完全相同维修步骤的Maintenance节点

解决方案

要找到与指定维修指南拥有完全相同维修步骤的其他指南,你可以通过比较两个Maintenance节点关联的WorkStep集合是否完全一致来实现,以下是完整的Cypher语句:

MATCH (mp1:Maintenance{name:'13 Years (325000 km)'})-[:HAS]->(ws:WorkStep)
WHERE id(mp1)=49214
WITH collect(ws) as targetSteps, size(collect(ws)) as targetCount, mp1
MATCH (mp2:Maintenance)-[:HAS]->(ws2:WorkStep)
WHERE mp2 <> mp1
WITH mp2, collect(ws2) as currentSteps, targetSteps, targetCount
WHERE size(currentSteps) = targetCount AND currentSteps = targetSteps
RETURN mp2

关键说明:

  • 排除自身匹配:用mp2 <> mp1确保不会返回你指定的原维修指南。
  • 性能优化:先通过size(currentSteps) = targetCount过滤掉步骤数量不一致的维修指南,减少后续集合全量比较的开销,数据量大时效果更明显。
  • 集合完全匹配:Cypher中集合直接用=比较时,会校验所有元素是否完全相同(集合无序,不要求步骤顺序一致),正好符合你“完全相同维修步骤”的需求。

如果数据量较小,也可以简化为无需提前校验数量的版本:

MATCH (mp1:Maintenance{name:'13 Years (325000 km)'})-[:HAS]->(ws:WorkStep)
WHERE id(mp1)=49214
WITH collect(ws) as targetSteps, mp1
MATCH (mp2:Maintenance)-[:HAS]->(ws2:WorkStep)
WHERE mp2 <> mp1
WITH mp2, collect(ws2) as currentSteps, targetSteps
WHERE currentSteps = targetSteps
RETURN mp2

内容的提问来源于stack exchange,提问作者TiMeJuMp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:07:13