FULLTEXT MySQL ne fonctionne pas

Je suis d'essayer d'ajouter de la recherche de soutien pour mon PHP web app à l'aide de MySQL FULLTEXT index.

J'ai créé une table de test (à l'aide de la MyISAM type, avec un seul champ de texte a) et entré les données de l'échantillon. Maintenant, si je suis à droite de la requête suivante renvoie les deux ces lignes:

SELECT * FROM test WHERE MATCH(a) AGAINST('databases')

Toutefois il renvoie none. J'ai fait un peu de recherche et je suis en train de faire tout ce que je peut dire - la table est une table MyISAM, la FULLTEXT index. J'ai essayé de l'exécution de la requête à partir de l'invite de commandes et de phpMyAdmin, avec pas de chance. Ai-je raté quelque chose d'essentiel?


Mise à JOUR: Ok, alors que Cody solution a fonctionné dans mon cas de test, il ne semble pas fonctionner sur mon tableau:

CREATE TABLE IF NOT EXISTS `uploads` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` text NOT NULL,
  `size` int(11) NOT NULL,
  `type` text NOT NULL,
  `alias` text NOT NULL,
  `md5sum` text NOT NULL,
  `uploaded` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

Et les données que j'utilise:

INSERT INTO `uploads` (`id`, `name`, `size`, `type`, `alias`, `md5sum`, `uploaded`) VALUES
(1, '04 Sickman.mp3', 5261182, 'audio/mp3', '1', 'df2eb6a360fbfa8e0c9893aadc2289de', '2009-07-14 16:08:02'),
(2, '07 Dirt.mp3', 5056435, 'audio/mp3', '2', 'edcb873a75c94b5d0368681e4bd9ca41', '2009-07-14 16:08:08'),
(3, 'header_bg2.png', 16765, 'image/png', '3', '5bc5cb5c45c7fa329dc881a8476a2af6', '2009-07-14 16:08:30'),
(4, 'page_top_right2.png', 5299, 'image/png', '4', '53ea39f826b7c7aeba11060c0d8f4e81', '2009-07-14 16:08:37'),
(5, 'todo.txt', 392, 'text/plain', '5', '7ee46db77d1b98b145c9a95444d8dc67', '2009-07-14 16:08:46');

La requête, je suis maintenant en cours d'exécution est:

SELECT * FROM `uploads` WHERE MATCH(name) AGAINST ('header' IN BOOLEAN MODE)

Qui devrait revenir la ligne 3, header_bg2.png. Au lieu de cela, je reçois un autre jeu de résultats vide. Mes options pour la recherche booléenne sont ci-dessous:

mysql> show variables like 'ft_%';
+--------------------------+----------------+
| Variable_name            | Value          |
+--------------------------+----------------+
| ft_boolean_syntax        | + -><()~*:""&| |
| ft_max_word_len          | 84             |
| ft_min_word_len          | 4              |
| ft_query_expansion_limit | 20             |
| ft_stopword_file         | (built-in)     |
+--------------------------+----------------+
5 rows in set (0.02 sec)

"en-tête" est à l'intérieur de la longueur de mot de restrictions et je doute que c'est un mot vide (je ne suis pas sûr de la façon d'obtenir la liste). Des idées?

InformationsquelleAutor Ross | 2009-07-14