BUG #16235: ts_rank ignores match and only considers lower weighted vector
От | PG Bug reporting form |
---|---|
Тема | BUG #16235: ts_rank ignores match and only considers lower weighted vector |
Дата | |
Msg-id | 16235-2dad73572326cfab@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #16235: ts_rank ignores match and only considers lower weighted vector
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 16235 Logged by: Dominik Giger Email address: dominik.giger@gmail.com PostgreSQL version: 12.1 Operating system: Linux Description: The following query shows the problem: select ts_rank(doc1, query) as rank_wrong, ts_rank(doc2, query) as rank_correct from (select setweight(to_tsvector('simple', 'foo something'), 'A') || setweight(to_tsvector('simple', 'foobar'), 'C') as doc1, setweight(to_tsvector('simple', 'foo something'), 'A') as doc2, to_tsquery('simple', 'foo:* & something') as query) as subquery; Some more explanation: doc1 looks like this: 'foo':1A 'foobar':3C 'something':2A doc2 looks like this: 'foo':1A 'something':2A Calling ts_rank on both vectors with the same query 'foo':* & 'something' Expected result: ts_rank on doc1 is the same or higher than ts_rank on doc2. Actual result: ts_rank on doc1 is only half of the rank of doc2. ts_rank seems to only consider the 'foobar' term with lower weight when calculating the rank. The foo:1A is only considered in doc2.
В списке pgsql-bugs по дате отправления: