|
Posted by www-onebigspace-com on 04/08/07 15:50
Yes, you could replace a single word with a set ....
function clean_phrase_input($input){
$string = strtolower(htmlspecialchars($input));
$patterns[0] = "cat"; $replacements[0] = "cat kitten deadcat";
$patterns[1] = "woman"; $replacements[1] = "gal girl";
$patterns[2] = "boy"; $replacements[2] = "guy young-guy";
$phrase = str_replace( $patterns, $replacements, $string
);
return $phrase;
}
Or you could create a table that has a keyword and links multiple
synonyms.
On Wed, 28 Mar 2007 12:02:36 GMT, "James A" <me@privacy.net> wrote:
>Hi,
>
>
>
>I want to allow full text search of a row in a table (MySQL v3.23). I
>understand that the WITH QUERY EXPANSION clause adds ability for results to
>be returned even where the match is not exact, misspellings, and some
>equivalences.
>
>
>
>However, I would like to specify somehow sets of equivalent words, so for
>example a search for "cat" would return a row containing the word "cat",
>"kitten" or "animal". The database is not large (300 rows with average of
>100 words per row) and it is specialized so this list would not be huge.
>
>
>
>Is there a way to customize the MySQL query expansion to add these
>alternative words? I do not have access to the source, so I don't expect so.
>
>
>
>Otherwise, could someone please suggest a way it could be performed? My
>thoughts are to construct a table of equivalent words, and then use code to
>expand the search string before performing the search, so that e.g.
>
>
>
>SELECT * FROM table WHERE MATCH (row) AGAINST ('cat')
>
>
>
>would become
>
>
>
>SELECT * FROM table WHERE MATCH (row) AGAINST ('cat kitten animal')
>
>
>
>However, I want to lsit the results in terms of relevance and I think that
>would return badly weighted results - rows with more than one word in the
>search phrase would be classed as more relevant than those with just one,
>whereas I am trying to make the words equivalent to each other. (I also want
>to do the same with phrase matching which could complicate it further
>maybe.)
>
>
>
>Many thanks in advance to anyone who has any ideas or has done such a thing
>already.
[Back to original message]
|