2015-06-21 4 views
2

Я ищу в Neo4j, используя регулярное выражение. Я бы хотел, чтобы этот поиск был глобальным. Как она стоит, поиск будет только найти слова, которые начинаются с буквами, введенными в регулярном выражении:Глобальное соответствие регулярному выражению с запросом Neo4j Cypher

MATCH (a) 
WHERE a.name =~ '(?i)bob.+' 
RETURN a.name 

Так будет найти имя Bob Smith не проблемы, но он не найдет John McBobberson. Как я могу найти Джона МакБоберсона, сохраняя вход «bob» в качестве поискового запроса?

+1

BTW попробуйте использовать ярлыки вместо соответствия через каждый узел – Luanne

+0

@ Luanne Конечно! Я просто пытался сделать это проще для примера :) – samcorcos

ответ

2
MATCH (a) 
WHERE a.name =~ '(?i).*bob.+' 
RETURN a.name 

должен найти Джона МакБоберсона, но я не думаю, что он найдет Джона МакБоба. Это должно найти и то, и другое.

MATCH (a) 
WHERE a.name =~ '(?i).*bob.*' 
RETURN a.name 
+0

Это было! Благодаря! – samcorcos

Смежные вопросы