Was stumped at first but I've figured out what's going on here. This is a funcion of MySQL's Full Text indexing behaviour in terms of common words that are present in > 50% of records - they are not considered in a natural langauge search.
"A natural language search interprets the search string as a phrase in natural human language (a phrase in free text). There are no special operators. The stopword list applies. In addition, words that are present in more than 50% of the rows are considered common and do not match. Full-text searches are natural language searches if no modifier is given."
Now, further on down that page it indicates that a boolean Full Text search may be performed if it is necessary to overcome the 50% so I need to do some experiments to see if BOOLEAN MODE can be used.
In the mean time, what I would suggest is making a small mod to search.php on this particular site to force the normal search method which does not use the full text index. To do this, find the following code (starting at line 62 in the distribution):
default:
if (strlen($parts[0]) > 3)
...and simply change that to:
default:
if (0)
That will force the normal search mode for all queries.
Hi Simon,
Was stumped at first but I've figured out what's going on here. This is a funcion of MySQL's Full Text indexing behaviour in terms of common words that are present in > 50% of records - they are not considered in a natural langauge search.
From http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html
"A natural language search interprets the search string as a phrase in natural human language (a phrase in free text). There are no special operators. The stopword list applies. In addition, words that are present in more than 50% of the rows are considered common and do not match. Full-text searches are natural language searches if no modifier is given."
Now, further on down that page it indicates that a boolean Full Text search may be performed if it is necessary to overcome the 50% so I need to do some experiments to see if BOOLEAN MODE can be used.
In the mean time, what I would suggest is making a small mod to search.php on this particular site to force the normal search method which does not use the full text index. To do this, find the following code (starting at line 62 in the distribution):
default:
if (strlen($parts[0]) > 3)
...and simply change that to:
default:
if (0)
That will force the normal search mode for all queries.
Cheers,
David.