Weighted Searching - Mailing list pgsql-general

From Mitch Vincent
Subject Weighted Searching
Date
Msg-id 005901c01cd5$9b67b250$0200000a@doot
Whole thread Raw
Responses Re: [SQL] Weighted Searching
Re: [SQL] Weighted Searching
List pgsql-general
I emailed the list a while back about doing some weighted searching, asking
if anyone had implemented any kind of weighted search in PostgreSQL.. I'm
still wondering the same thing and if anyone has, I would greatly appreciate
a private email, I'd like to discuss it in detail.. I have several ideas but
most of them are pretty dirty and slow..

What I need to do is allow the user to assign weights to fields and then
specify a minimum weight which would dictate results..

Example :

A search on two fields, degree and years_experience, location_state.

The user assigns degree a weight of 10, years_experience a weight of 10 and
location_state a weight of 10. Then specifies the minimum weight as 20,
meaning that any results returned would have to have at least two of the
fields an exact match (any two that where the sum of the weight equals 20).
This could be carried out to many, many fields and extremely high weights..

The problem I'm having is figuring out a good way to assign the weights to
individual fields and test to see if an individual field is exactly matched
in the query (without running a single query for each field searched on.

Example:

The SQL query for the search above might be :

SELECT * FROM people WHERE degree='MBA' and years_experience='5' and
location_state='Arizona'

I would want people that have an MBA and 5 years experience but they
wouldn't necessarily have to be in Arizona (because our minimum weight is
20, only two would have to match)..

Hopefully I'm not over-explaining to the point of confusion.. If anyone
would have any ideas, please drop me an email.. Thanks!!!

-Mitch






pgsql-general by date:

Previous
From: Jeff MacDonald
Date:
Subject: MySQL benchmarks updated to PostgreSQL 7.0.2 (fwd)
Next
From: Stephan Szabo
Date:
Subject: Re: [SQL] Weighted Searching