Operators in Age
In the article we will talk about different operators in apache age:
String Specific Comparison Operators
Data Setup
Setting up sample data
SELECT * FROM cypher('tutorial', $$ CREATE (:Person {name: 'Talha'}), (:Person {name: 'Usman'}), (:Person {name: 'Irfan'}) $$) AS (result agtype); Starts With
The operator performs case sensitive prefix searching on selected strings.
SELECT * FROM cypher('tutorial', $$ MATCH (v:Person) WHERE v.name STARTS WITH "T" RETURN v.name $$) AS (names agtype); The above query returns the names of the persons starting with T.
End With
Performs case sensitive suffix searching on selected strings.
Query:
SELECT * FROM cypher('tutorial', $$ MATCH (v:Person) WHERE v.name ENDS WITH "a" RETURN v.name $$) AS (names agtype); The above query will return the names of the people ended with a which in this case is 1.
Regular expressions:
Age also supports the use of POSIX regular expressions using the =~ operator.
Basic String Matching:
The =~ operator acts like the = operator when no special characters are provided.
SELECT * FROM cypher('tutorial', $$ MATCH (v:Person) WHERE v.name =~ 'Usman' RETURN v.name $$) AS (names agtype); Case insensitive Search:
Adding ?! at the beginning of the string will make case insensitive comparisons.
Query:
The query below performs case insensitive search
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ '(?i)USman' RETURN v.name $$) AS (names agtype); . Wildcard
. operator acts as a wildcard to match any single character.
Query:
The below query will search for any character in our data
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'Usm.n' RETURN v.name $$) AS (names agtype); The * wildcard
- wildcard see if it matches the zero o more of the previous character. Query:
SELECT * FROM cypher('graph_name', $$ MATCH (v:Person) WHERE v.name =~ 'Talo*a' RETURN v.name $$) AS (names agtype); The above query will see whether the character behind * matches then prints the name, else print it by eliminating the o.
The + operator:
The + operator matches to 1 or more the previous character.
Query:
SELECT * FROM cypher('tutorial', $$ MATCH (v:Person) WHERE v.name =~ 'Usm+' RETURN v.name $$) AS (names agtype);
Top comments (0)