23

I need to make a string contain filter in Neo4J. The idea is simple.

A good example is that I need to retrieve from a database of persons all the people that contain in his name the car substring.

How can I do this?

chfumero
  • 1,137
  • 2
  • 13
  • 26

2 Answers2

32

As an additional update, from neo4j 3.0 it may be more readable to use:

MATCH(n)
WHERE n.name CONTAINS 'car'
RETURN n

(Edited to include Maciej fix to my response, thank you!)

Philippe Fanaro
  • 6,148
  • 6
  • 38
  • 76
yawmoght
  • 727
  • 6
  • 10
20

You can use regular expressions to match a part of a name, for example:

MATCH (n)
WHERE n.name =~ '.*car.*'
RETURN n

If you have the label 'Person' assigned to all people in your database, the query would be:

MATCH (n:Person)
WHERE n.name =~ '.*car.*'
RETURN n

For further information, see http://docs.neo4j.org/chunked/stable/query-where.html#_regular_expressions

Axel Morgner
  • 2,292
  • 16
  • 15