Question about ranking & full text

Started by Nicolas Parisalmost 10 years ago2 messagesgeneral
Jump to latest
#1Nicolas Paris
niparisco@gmail.com

Hi,
I wonder why the third query returns 0.
To me, it would return 0.1, because there is not baz in the text

Thanks !
(pg 9.4)

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo baz') as t) as apod, to_tsquery('foo & baz')
query
WHERE query @@ apod.t;
rank |
------------|
0.100000001 |

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo ') as t) as apod, to_tsquery('foo & ! baz')
query
WHERE query @@ apod.t;

rank |
------------|
0.100000001 |

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo ') as t) as apod, to_tsquery(' ! baz') query
WHERE query @@ apod.t;

rank |
------------|
0.0 |

#2Arthur Zakirov
a.zakirov@postgrespro.ru
In reply to: Nicolas Paris (#1)
Re: Question about ranking & full text

On 15.04.2016 15:47, Nicolas Paris wrote:

Hi,
I wonder why the third query returns 0.
To me, it would return 0.1, because there is not baz in the text

Thanks !
(pg 9.4)

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo baz') as t) as apod, to_tsquery('foo &
baz') query
WHERE query @@ apod.t;
rank |
------------|
0.100000001 |

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo ') as t) as apod, to_tsquery('foo & !
baz') query
WHERE query @@ apod.t;

rank |
------------|
0.100000001 |

SELECT ts_rank_cd(apod.t, query,4) AS rank
FROM (SELECT to_tsvector('foo ') as t) as apod, to_tsquery(' ! baz') query
WHERE query @@ apod.t;

rank |
------------|
0.0 |

Hello,

I think this is a right behaviour of the function. Because it computes
how often the query terms appear in the document, how close together the
terms are in the document, and how important is the part of the document
where they occur.

In the third example found terms are empty. And the function can't do
calculates with empty terms. It sees that the terms are empty and
returns 0.0.

--
Artur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general