Eu segui este exemplo da documentação do Mysql :
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');
SELECT *, MATCH ( title, body ) AGAINST ( 'database' ) AS Score
FROM articles
WHERE MATCH (title,body) AGAINST ('database');
+----+-------------------+------------------------------+------------+
| id | title | body | Score |
+----+-------------------+------------------------------+------------+
| 5 | MySQL vs. YourSQL | In the following database... | 0.662664...|
| 1 | MySQL Tutorial | DBMS stands for DataBase ... | 0.655458...|
+----+-------------------+------------------------------+------------+
isso funciona, mas se eu excluir todas as linhas, exceto uma:
DELETE FROM `articles` WHERE id >1
então o select dá Score 0:
SELECT * , MATCH ( title, body ) AGAINST ( 'database' ) AS Score FROM articles
Restando apenas uma linha todas as ocorrências são 100% da busca, e tudo acima de 50% é considerado stop word. Meu palpite é que uma palavra de parada recebe pontuação 0. Há também uma lista de palavras de parada (a palavra 'banco de dados' não está nela) encontrada aqui: http://dev.mysql.com/doc/refman/5.1/en/ fulltext-stopwords.html
Em http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html você encontra:
Uma pesquisa em linguagem natural interpreta a string de pesquisa como uma frase em linguagem humana natural (uma frase em texto livre). Não há operadores especiais. A lista de palavras irrelevantes se aplica. Além disso, palavras que estão presentes em 50% ou mais das linhas são consideradas comuns e não correspondem.