Как я могу создать строку, содержащую фильтр на Neo4j Cypher

Мне нужно, чтобы строка содержала фильтр в Neo4J. Идея проста.

Хорошим примером является то, что мне нужно извлечь из базы данных людей всех людей, которые содержат от его имени подстроку автомобиля.

Как я могу это сделать?

Ответ 1

Вы можете использовать регулярные выражения для соответствия части имени, например:

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

Если у вас есть метка "Человек", назначенная всем людям в вашей базе данных, запрос будет выглядеть следующим образом:

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

Для получения дополнительной информации см. http://docs.neo4j.org/chunked/stable/query-where.html#_regular_expressions

Ответ 2

В качестве дополнительного обновления из neo4j 3.0 его можно более легко использовать:

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

(Отредактировано для включения Maciej в мой ответ, спасибо!)