SELECT * FROM cypher('graph_name', $$ CREATE (:Person {name: 'John'}), (:Person {name: 'Jeff'}), (:Person {name: 'Joan'}), (:Person {name: 'Bill'}) $$) AS (result agtype);
Performs case-sensitive prefix searching on strings.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name STARTS WITH "J" RETURN v.name $$) AS (names agtype);
Results
Performs case-sensitive inclusion searching in strings.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name CONTAINS "o" RETURN v.name $$) AS (names agtype);
Results
Performs case-sensitive suffix searching on strings.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name ENDS WITH "n" RETURN v.name $$) AS (names agtype);
Results
AGE supports the use of POSIX regular expressions using the =~ operator. By default =~ is case sensitve.
The =~ operator when no special characters are given, act like the = operator.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'John' RETURN v.name $$) AS (names agtype);
Results
Adding (?i) at the beginning of the string will make the comparison case insensitive
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ '(?i)JoHn' RETURN v.name $$) AS (names agtype);
The . operator acts as a wildcard to match any single character.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'Jo.n' RETURN v.name $$) AS (names agtype);
The * wildcard after a character will match to 0 or more of the previous character
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'Johz*n' RETURN v.name $$) AS (names agtype);
The + operator matches to 1 or more the previous character.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'Bil+' RETURN v.name $$) AS (names agtype);
Results
You can use the . and * wildcards together to represent the rest of a string.
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'J.*' RETURN v.name $$) AS (names agtype);
Operator precedence in AGE is shown below: