Re: Information Retrieval.. help

From: Date: Tue, 05 Nov 2002 20:05:53 +0000
Subject: Re: Information Retrieval.. help
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-122858@lists.php.net to get a copy of this message
Brilliant! I had no idea that something like this was built into MySQL. This will work very nicely. Thank you. -Kevin ----- Original Message ----- From: "Matt Schroebel" <MSchroebel@hsus.org> To: "Kevin Stone" <kevin@helpelf.com> Cc: <php-general@lists.php.net> Sent: Tuesday, November 05, 2002 1:01 PM Subject: RE: [PHP] Information Retrieval.. help > Why don't you use full text search, which creates a score? > > Two tutorials: > http://www.mysql.com/doc/en/Fulltext_Search.html > http://www.zend.com/zend/tut/tutorial-ferrara1.php > > The match words need to be at least 3 characters in length or you'll get > no results. > > > -----Original Message----- > > From: Kevin Stone [mailto:kevin@helpelf.com] > > Sent: Tuesday, November 05, 2002 2:44 PM > > To: php-general@lists.php.net > > Subject: [PHP] Information Retrieval.. help > > > > > > 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 > > kevin@helpelf.com > > > > > >

« previous php.general (#122858) next »