Improve Full text rank in a query

From: "b wragg" <bwragg(at)tpg(dot)com(dot)au>
To: <pgsql-performance(at)postgresql(dot)org>
Subject: Improve Full text rank in a query
Date: 2008-03-07 03:58:47
Message-ID: 000b01c88007$8c07b1a0$0502a8c0@windoze
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi all,

I'm running the following query to match a supplied text string to an actual
place name which is recorded in a table with extra info like coordinates,
etc.

SELECT ts_rank_cd(textsearchable_index_col , query, 32 /* rank/(rank+1) */)
AS rank,*
FROM gazetteer, to_tsquery('Gunbower|Island|Vic') query
WHERE query @@ textsearchable_index_col order by rank desc, concise_ga desc,
auda_alloc desc LIMIT 10

When I run this I get the following top two results:

Pos Rank Name
State
1 0.23769 Gunbower Island Primary School Vic
2 0.23769 Gunbower Island Vic

The textsearchable_index_col for each of these looks like this:

'vic':6 '9999':5 'gunbow':1 'island':2 'school':4 'primari':3 'victoria':7
'vic':4 '9999':3 'gunbow':1 'island':2 'victoria':5

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?

Thanks,

bw

No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.4/1309 - Release Date: 3/03/2008
6:50 PM

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message shilpa.raghavendra 2008-03-07 04:59:00 database design for large data.
Previous Message Craig James 2008-03-07 03:00:17 Re: count * performance issue