Re: Improve Full text rank in a query

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "b wragg" <bwragg(at)tpg(dot)com(dot)au>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Improve Full text rank in a query
Date: 2008-03-07 05:40:13
Message-ID: 6689.1204868413@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

"b wragg" <bwragg(at)tpg(dot)com(dot)au> writes:
> I'm new to this, but I can't figure out why the "Gunbower Island Primary
> School" is getting top place. How do I get the query to improve the ranking
> so that an exact match (like "Gunbower|Island|Vic") gets a higher position?

I'm new at this too, but AFAICS these are both exact matches: they have
the same matching lexemes at the same positions, so the basic rank
calculation is going to come out exactly the same. Normalization option
32 doesn't help (as the manual notes, it's purely cosmetic). So it's
random chance which one comes out first.

What I think you might want is one of the other normalization options,
so that shorter documents are preferred. Either 1, 2, 8, or 16 would
do fine for this simple example --- which one you want depends on just
how heavily you want to favor shorter documents.

regards, tom lane

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Vlad Arkhipov 2008-03-07 05:50:40 Nested loop vs merge join: inconsistencies between estimated and actual time
Previous Message paul rivers 2008-03-07 05:38:48 Re: count * performance issue