Re: How to do phrase search?

Поиск
Список
Период
Сортировка
От Ivan E. Panchenko
Тема Re: How to do phrase search?
Дата
Msg-id 362f19a9-c7a7-c439-0117-4ec287dd404e@postgrespro.ru
обсуждение исходный текст
Ответ на How to do phrase search?  (Anto Aravinth <anto.aravinth.cse@gmail.com>)
Список pgsql-general

Hello,

On 10.07.2020 21:22, Anto Aravinth wrote:
Hello,

I have the following table:

so2, which has following column details:

id, title, posts, body (tsvector). 

And I created the index on the following:

"so2_pkey" PRIMARY KEY, btree (id)

"body" gin (body)

And I wanted to query on my tsvector with the string: `Is it possible to toggle the visibility of an element`. I tried the following query:

If you want phrase search, use the phraseto_tsquery function, like

   phraseto_tsquery( 'Is it possible to toggle the visibility of an element')

or

   phraseto_tsquery( 'my_ts_config', 'Is it possible to toggle the visibility of an element')

SELECT id, ts_rank(body, keywords) AS rank

FROM so2,

to_tsquery('Is & it & possible & to & toggle & the & visibility & of & an & element')

keywords

WHERE keywords @@ body ORDER BY rank DESC;

This give the result in which the "element" string count is large in number, however there is a record which exactly matches the search string, that comes as third in my result. So logically it just checked in my query which word count occurs the most across my body column, which I don't want.

Can I say somehow to postgresql, that I want the pharse search rather than the text spilt up weight in the document. Is it possible to do?

Edit: I tried with `ts_rank_cd\` as well. Same result.


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

Предыдущее
От: Tim Cross
Дата:
Сообщение: Re: Issue with timestamp without time zone datatype with default value as now()/localtimestamp
Следующее
От: Deepika S Gowda
Дата:
Сообщение: Re: Issue with timestamp without time zone datatype with default value as now()/localtimestamp