Re: BUG #6654: Full text search doesn't find europe

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #6654: Full text search doesn't find europe
Дата
Msg-id 9098.1337641317@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #6654: Full text search doesn't find europe  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
Andres Freund <andres@anarazel.de> writes:
> On Monday, May 21, 2012 07:26:38 PM wbrana@gmail.com wrote:
>> CREATE INDEX idx_post_text ON posts USING gin
>> (to_tsvector('english'::regconfig, post_text::text))
>> select *  from v_search WHERE to_tsvector('english', post_text) @@ 'europe'
>> returns no rows, but
>> select *  from v_search WHERE to_tsvector('english', post_text) @@ 'japan'
>> returns row with "Japan and Europe"

> The problem is that youre using to_tsvector('english' for parsing the text but
> don't specify the text yearch configuration for the query. The default english
> configuration does stemming, the default_text_search_configuration obviously
> not.
> Try ... to_tsvector('english', post_text) @@ to_tsquery('english', 'europe')

BTW, a good way to debug this sort of issue is to look at the actual
tsvector and tsquery values.

regression=# select to_tsvector('english', 'Japan and Europe');
     to_tsvector
---------------------
 'europ':3 'japan':1
(1 row)

regression=# select to_tsquery('english', 'Japan');
 to_tsquery
------------
 'japan'
(1 row)

regression=# select to_tsquery('english', 'Europe');
 to_tsquery
------------
 'europ'
(1 row)

If you just cast 'europe' directly to tsquery, which is what's going to
happen in the first example, you get the lexeme 'europe' which doesn't
match 'europ'.

            regards, tom lane

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: BUG #6654: Full text search doesn't find europe
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #6656: Wrong timestamptz + interval calculation