Я пытаюсь передать несколько слов для алгоритма поиска в аннотацию @Query Neo4j в Spring Boot. Вот что я пытаюсь:
@Query("WITH [{search}] AS sarray "
+ "MATCH (a:Node) "
+ "WHERE ALL(s IN sarray WHERE a.name=~('(?i).*'+s+'.*') " // <- This is known good regex
//The rest of the query which is known good
Этот запрос отлично работает в веб-интерфейсе Neo4j, например:
WITH ["some","search","terms"] AS sarray
Что я пробовал:
- Передача в одной строке с запятыми между несколькими словами
- Передача в переменную {search} ArrayList
- Передача в переменную {search} массива
- Снятие скобок в аннотации
- Возможны и другие вещи, которые тоже не сработали
Ошибка, которую я получаю, говорит: «Неверное регулярное выражение: недопустимое повторение около индекса 5 (? I). {search}. ^ "
Это регулярное выражение работает до изменения запроса на включение нескольких слов.