Cypher高级查询

通过学习Cypher的基础语法,再结合实际应用的图谱检索需求,比如有时候需要查找多跳关系的节点、最短路径、多关系多层次查找、相关检索和模糊检索等,整理形成了基于Cypher的高级查询,后续会根据实际应用情况继续完善补充,并参考Bloom继续完善。供大家学习参考。

1.查询xx盆地本身及其4跳关系的数据

MATCH (p:com_basin { name:'xx盆地'}) - [*0..4]- (x)

RETURN x limit 50

2.模糊搜索,相当于SQL中的like '%储层特征%'

 MATCH (a:resultSummary)

 WHERE a.name=~ '.*储层特征.*'

 RETURN a limit 25;

或者

MATCH (n:resultSummary) 

where n.name contains '储层特征' RETURN n LIMIT 25;

3.广度优先查询指定信息的相关节点

MATCH (n:result)-[r:has_key*1..4]-(m)

WHERE n.name =~'完井地质.*'

RETURN n,r,m limit 50

4.查询仅返回给定根节点的第一级子节点

MATCH (n:resultSummary)-[r:has_key*]->(es:resultKeys)

WHERE n.name =~'.*生烃潜力.*'

RETURN n,es,r limit 100

5.支持关系的扩展查询

MATCH (n:resultSummary)

WHERE n.name =~'.*生烃潜力.*'

CALL apoc.path.expandConfig(n,{relationshipFilter:"has_key",maxLevel:3,uniqueness:"NODE_GLOBAL"}) YIELD path

WITH n, RELATIONSHIPS(path) as r, LAST(NODES(path)) as es

WHERE es:resultKeys

RETURN n,es,r limit 100

6.查询某个节点上下3层关系的数据

match p = ()-[*0..3]->(n:com_well{name:'WZ11-1N-A2'})-[*0..3]->() return p limit 50

7.查询既有A关系又有B关系的节点

match (n:com_ogf_reg)-[:has_key]->(n1:result)

with n, n1

match (n)-[:has_well]->(n1)

return n, n1 limit 50

8.查询两个节点之间的最短路径的节点数据

MATCH (p:com_basin{name:"xxx盆地"}),(q:resultKeys{name:"完钻层位"}),(r:resultKeys{name:"xx组"}),

a=shortestpath((p)-[*..10]-(r))

RETURN a

9.查询两个标签中,与指定1个节点的上下次关系在4以内的数据

MATCH data=(na:com_basin{name:"xx盆地"})-[*1..4]->(nb:resultSummary) return data limit 25

10.查询具有一定深度的节点

match p=()-[*2..4]-()

return p 

limit 50

11.查询某个标签的节点总数

match (n:com_well) return count(n) as well_num

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一望无际的大草原

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值