2 つのフルテキスト インデックスが定義されたテーブルがあります。「show create table upload」ステートメントのテーブル レイアウトは次のとおりです。
CREATE TABLE `upload` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`when_uploaded` datetime DEFAULT NULL,
`bywho` int(10) unsigned DEFAULT NULL,
`notes` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`),
KEY `bywho` (`bywho`),
KEY `when_uploaded` (`when_uploaded`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `notes` (`notes`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
検索に使用されるSQLは次のとおりです。
select * from upload where match(notes) against('comments' in boolean mode)
「コメント」という単語が 4 つのテスト行の少なくとも 1 つに表示されることを確認しました。次を使用してタイトルを検索できます。
select * from upload where match(title) against('upload' in boolean mode)
同じテーブルで問題なく、結果を返すようにします。私が試した別の単語がありますが、メモ欄にあることがわかっていますが、役に立ちません。
この検索が以前に機能していたことは知っています。最小単語サイズを 3 に変更しました。タイトルとメモのインデックスを削除して、再度追加しました。タイトルは機能しますが、メモは機能しません。
「ブーリアン モード」を使用しているため、50% のノイズ ルールは適用されません。私は 5.6.10 MySQL で実行しています。これらの検索は、PHP スクリプトと mysql コマンド ラインの両方から試しました。任意のガイダンスをいただければ幸いです。