0

我有一个定义了两个全文索引的表。“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 个测试行中的一个中。我可以使用以下方法搜索标题:

select * from upload where match(title) against('upload' in boolean mode)

在同一张桌子上没有问题并让它返回结果。我尝试过不同的单词,我知道它们在注释字段中,但无济于事。

我知道这个搜索以前有效。我将最小单词大小更改为 3。删除标题和注释的索引并重新添加它们。标题有效,注释无效。

由于我使用的是“布尔模式”,因此 50% 噪声规则不应生效。我在 5.6.10 MySQL 上运行。我已经从我的 PHP 脚本和 mysql 命令行尝试了这些搜索。任何指导将不胜感激。

4

0 回答 0