PostgreSQL Поиск целых слов в строке независимо от порядка регулярных выражений? - PullRequest
0 голосов
/ 25 июня 2018

Есть ли способ реализовать такую ​​функцию поиска с использованием запросов и регулярных выражений?

Правила поиска:

  1. Поиск слова существования во всех полях.

  2. Поиск идет как * A * & * B * & * C * независимо от порядка ключей поиска; независимо от того, начинается ли он или заканчивается или находится между полным текстом.

Пул слов:
Угловой
Загрузочный
Ремешок
xxAngular xxBoot
xxBootxx xxAngularxx
Угловой ремень для ботинок

Поиск в слове:
Ботинок угловой

Ожидаемые результаты:
xxAngular xxBoot
xxBootxx xxAngularxx
Угловой ремень для ботинок

Текущий запрос выглядит примерно так:

SELECT DISTINCT field1, field2, field3 FROM myTable
WHERE LOWER( field1 || ' ' || field 2 || ' ' || field3 )
LIKE LOWER ('%(Angular)% | %(Boot)%')

Результаты запроса:
Угловой
Загрузочный
xxAngular xxBoot
xxBootxx xxAngularxx
Угловой ремень для ботинок

- Чтобы найти слово во всех полях, оно было объединено в одну строку, где слово ищется, но у меня возникают трудности с тем, как создать регулярное выражение для * A * & * B * & * C *.

- запрос в настоящее время использует | , это дает мне записи, которые соответствуют любому поисковому слову. Но мне нужно, чтобы они все были в записи.

- Я пытался использовать & в запросе, но не дал результатов. Есть ли способ выполнить этот поиск, используя только регулярные выражения?

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