2011-01-03 8 views
4

какой запрос использовать для поиска текста, соответствующего оператору.postgres полнотекстовый поиск, как оператор

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

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

Я хочу результаты с «сообщением» как хорошо, но право не он не возвращает ничего

ответ

9

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

 
SELECT * 
FROM eventlogging 
WHERE description_tsv @@ to_tsquery('mess:*'); 
+6

есть ли что-нибудь для сопоставления суффикса, а также – user373201

+0

Спасибо за ответ. оно работает – user373201

-3

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

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

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

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

SELECT * FROM table WHERE name ILIKE '%ing' 
+0

Я спрашиваю о полнотекстового поиска запрос, который формы SELECT * FROM events WHERE description_tsv @@ plainto_tsquery ('mess *'); Я хочу получить результаты с сообщением, но правильно, но он ничего не возвращает – user373201

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