Попытка сделать мой Cypher Statement регистронезависимым - PullRequest
0 голосов
/ 31 октября 2019

Я получил зашифрованный запрос, который работает в репозитории neo4j, и я хотел бы сделать этот запрос нечувствительным к регистру.

Попытка с =~, но это не работает.

@Query (countQuery = "match (n:Patient) where n.born = {0} OR n.lastName = {0} OR n.email = {0} return n") Page<Patient> findByLastNameOrBornOrEmail(String lastName, String born, String email, Pageable pageable);

1 Ответ

0 голосов
/ 31 октября 2019

Сам по себе =~ не будет работать, вам нужно добавить префикс строки к (?i), например, так:

WHERE n.lastname =~ '(?i)' + {0}

Имейте в виду, что индексы нельзя использовать при выполнении таких поисков, планировщикпотребуется выполнить сканирование меток всех: узлов пациента, которые будут менее эффективными, как: узлы пациента увеличатся.

Если вы используете Neo4j 3.5.x, вы можете рассмотреть возможность использования индексы полнотекстовой схемы , которые могут охватывать несколько свойств узла (а не только одно свойство), которые идеально подходят для вашего случая и нечувствительны к регистру. Возможно, вам придется выяснить, где делать отсечение, чтобы получить только релевантные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...