Apache AGE如何检索属性符合特定模式的节点?
检索匹配名字的节点及Apache AGE字符串匹配说明
一、检索名字以Michael开头的节点
你可以通过Cypher的字符串匹配语法实现需求,以下是两种常用方法:
1. 使用STARTS WITH匹配开头
这是针对"开头匹配"场景的直接方案:
SELECT * FROM cypher('graph', $$ MATCH (p:Person) WHERE p.name STARTS WITH 'Michael' RETURN p $$) AS (p agtype);
2. 使用正则表达式匹配
Cypher支持=~操作符实现灵活的正则匹配:
SELECT * FROM cypher('graph', $$ MATCH (p:Person) WHERE p.name =~ 'Michael.*' RETURN p $$) AS (p agtype);
二、关于Apache AGE中的LIKE替代方案
Apache AGE的Cypher语法没有直接提供和PostgreSQL完全一致的LIKE子句,但可以通过内置操作实现类似效果:
STARTS WITH:对应LIKE 'Michael%'的前缀匹配ENDS WITH:对应LIKE '%Douglas'的后缀匹配CONTAINS:对应LIKE '%Michael%'的任意位置匹配
比如要匹配名字中任意位置包含Michael的节点,可使用:
SELECT * FROM cypher('graph', $$ MATCH (p:Person) WHERE p.name CONTAINS 'Michael' RETURN p $$) AS (p agtype);
内容的提问来源于stack exchange,提问作者Zainab Saad
相关产品推荐
相关产品推荐

