From: | "Ivan E(dot) Panchenko" <i(dot)panchenko(at)postgrespro(dot)ru> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: How to do phrase search? |
Date: | 2020-07-11 07:20:40 |
Message-ID: | 362f19a9-c7a7-c439-0117-4ec287dd404e@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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.
>
From | Date | Subject | |
---|---|---|---|
Next Message | Deepika S Gowda | 2020-07-11 09:17:27 | Re: Issue with timestamp without time zone datatype with default value as now()/localtimestamp |
Previous Message | Tim Cross | 2020-07-11 00:49:22 | Re: Issue with timestamp without time zone datatype with default value as now()/localtimestamp |