如何在Neo4j查询中显示隐藏的FACT类型入边及关联节点
图谱查询优化需求
当前问题
现有Cypher查询仅返回从Update Profile(FEATURE类型节点)到含CSRF的GAP节点的路径,但未展示R11_UP、R12_UP节点的入边FACT类型节点。
当前查询语句:
MATCH p=(parent:FEATURE)-[*]->(gap:GAP) WHERE parent.name = "Update Profile" and (gap.name contains "CSRF" ) RETURN p
目标
修改查询,同时展示原有路径内容和R11_UP、R12_UP节点关联的FACT入边节点。
解决方案
方案1:匹配原有路径+独立匹配目标节点的FACT边
MATCH p=(parent:FEATURE)-[*]->(gap:GAP) MATCH f=(fact:FACT)-->(r) WHERE parent.name = "Update Profile" AND gap.name CONTAINS "CSRF" AND r.name IN ["R11_UP", "R12_UP"] RETURN p, f
方案2:先定位含目标节点的路径,再匹配对应FACT边
如果需要确保R11_UP/R12_UP在原有路径中,用这个查询:
MATCH p=(parent:FEATURE)-[*]->(r)-[*]->(gap:GAP) MATCH f=(fact:FACT)-->(r) WHERE parent.name = "Update Profile" AND gap.name CONTAINS "CSRF" AND r.name IN ["R11_UP", "R12_UP"] RETURN p, f
说明
- 方案1适用于已知R11_UP/R12_UP节点名称,且无需确认其是否在原有路径内的场景
- 方案2会先筛选出包含R11_UP/R12_UP的原有路径,再关联对应的FACT节点,保证图谱的关联性
内容的提问来源于stack exchange,提问作者JAMSHAID
相关产品推荐
相关产品推荐

