Postgres полнотекстовый поиск, как оператор - PullRequest
4 голосов
/ 04 января 2011

какой запрос использовать для поиска текста, который соответствует оператору like.

Я спрашиваю о полнотекстовом поисковом запросе, который имеет форму

 SELECT * FROM eventlogging WHERE description_tsv @@ plainto_tsquery('mess');   

Я тоже хочу результаты с "message", но верно, что ничего не возвращается

Ответы [ 2 ]

10 голосов
/ 04 января 2011

Если я правильно прочитал описание в руководстве , вам потребуется использовать to_tsquery() вместо plainto_tsquery вместе с подстановочным знаком, чтобы разрешить сопоставление префиксов:

SELECT * 
FROM eventlogging 
WHERE description_tsv @@ to_tsquery('mess:*');
0 голосов
/ 04 января 2011

Вы можете использовать LIKE для точного совпадения регистра или ILIKE для нечувствительного к регистру. Используйте % в качестве подстановочного знака.

Это будет соответствовать чему-либо с «SomeThing» в нем (с учетом регистра).

SELECT * FROM table WHERE name LIKE '%SomeThing%'

Это будет соответствовать всему, что заканчивается на «ing» (без учета регистра).

SELECT * FROM table WHERE name ILIKE '%ing'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...