You are here:  » Search Query


Search Query

Submitted by crounauer on Wed, 2006-07-19 13:40 in

Hi David,

Just wondering why when I search for "Michel" on the site German Language Courses it produces no results, when clearly it should.

Seems to work for some keywords and not others!

any clues?
Simon.

Submitted by support on Wed, 2006-07-19 15:22

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.

Submitted by crounauer on Thu, 2006-07-20 09:45

Thanks David.