"keep" is a full-text stopword, by default, which means it isn't indexed. You'll need a custom stopword list if you want "keep" to be indexed. See the manual for details <http://dev.mysql.com/doc/mysql/en/Fulltext_Fine-tuning.html>.

The default list of stopwords is in myisam/ft_static.c in a source distribution.

Michael

Alisa Joy Cognard wrote:

I have hit a snag in setting up a Boolean search; my query is returning 0
results when there are definitely five matches in my table.

My query is set up as follows:

SELECT * FROM resources WHERE MATCH (organization_name, description) AGAINST
('keep' IN BOOLEAN MODE);

'Keep' is a word that shows up 3 times in the organization_name field and 2
times in the description field in my table. There are 122 rows in the table,
so this 0 result is clearly not because of the 50% threshold (which I think
doesn't apply to Boolean searches anyway?)

Other background information: I have set organization_name and description
as the fulltext index, organization_name is a VAR CHAR field of 100,
description is a TEXT field, all of the organization_name entries are
minimum of 3 words, and description entries are a minimum of about 100
words.

If I make it a basic search like this:

SELECT * FROM resources WHERE organization_name LIKE "%keep%" OR description
LIKE "%keep%";

Then I get the correct results back. If I set it as a fulltext search (not
boolean) I get "0" results back. If I add an * into my Boolean search
(AGAINST ('keep*' IN BOOLEAN MODE);) I get 1 result (and not the 5 I should
be getting).

Is my first query written wrong? What am I missing here?

Thanks in advance for your help.

Alisa



-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to