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)