0

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 コマンド ラインの両方から試しました。任意のガイダンスをいただければ幸いです。

4

0 に答える 0