Hey list!  I have written several simple search scripts to retrieve basic data.. that 
is to say I wasn't worried about the actual relevancy of what I was retrieving.  Now I 
need to write a search script that retrieves information based on the search terms in 
order of relevancy.  It doesn't have to feature boolean operations but it does have to 
be fast and flexible.  This is what I have so far.

The database contains:
ID   Description
--   ------------
1   jade gold ring
2   grandmas golden ring with leaves
3   silver and gold diamond bracelet

The user enters the search string:
"ring gold leaves"

I split the string into words and query them separately:
"SELECT ID FROM jewlry WHERE description LIKE \"%ring%\""    returns 1,2
"SELECT ID FROM jewlry WHERE description LIKE \"%gold%\""    returns 1,2,3
"SELECT ID FROM jewlry WHERE description LIKE \"%leaves%\""  returns 2

Then I combine the results into one array and use arraycountvalues() to eliminate 
redundencies and count the number of occurances of each row.  The number of occurances 
of a row should be equal to its relevancy so I sort the array by value:
array (
2 => 3,
1 => 2,
3 => 1);

Hopefully that wasn't too hard to follow.  I as examine my code I get the distinct 
impression that this is an extraordinarily Primative method.  :)  If so do you have 
any suggestions for improving it or can you please point me to resources (tutorials, 
books, websites, etc..) that would help me develope more a sophisticated technique?

Much appreciated!
Kevin Stone

Reply via email to