Похоже, что LIKE не поддерживается в запросах Cypher.
Есть ли другая конструкция, которая выполняла бы ту же задачу?
Например:
start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
Похоже, что LIKE не поддерживается в запросах Cypher.
Есть ли другая конструкция, которая выполняла бы ту же задачу?
Например:
start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
с использованием регулярных выражений: http://neo4j.com/docs/developer-manual/current/#query-where-regex
start n = node(*) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
start n=node:your_index('property:*SUBSTRING*') return n.name, n;
- person ulkas; 12.12.2012
start n = node(*) where n.Name =~ {like} return n.Name, n; params: {like:. * SUBSTRING. *}, а также node (*) в качестве начального предложения, намекающего на вариант использования без графа, а затем используйте предложение поиска по индексу ulkas
- person Michael Hunger; 19.12.2012
Начиная с версии 2.0, в предпочтительном синтаксисе используется MATCH.
e.g.
MATCH (n) where n.Name =~ '.*SUBSTRING.*' return n.Name, n;
Регулярные выражения не нужны:
start n = node(*) where n.Name contains "substring" return n.Name, n;
Перейдите к cypher refcard и прокрутите вниз до раздела Предикаты. Вы найдете это и другие полезные вещи.
Хотите регистр без учета регистра? Преобразовать в нижний регистр:
start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;
=~ '(?i)substring', но не очень хорошо. нижний () предотвращает использование индекса, поэтому на больших данных он просто зависает. У меня есть открытый запрос функции здесь: github.com/neo4j/neo4j/issues/9450
- person ekkis; 03.06.2017
Если вы хотите сделать его нечувствительным к регистру
MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;