mysql fulltext 不起作用_MySQL FULLTEXT不工作

我正在尝试使用MySQL的FULLTEXT索引添加对我的PHP Web应用程序的搜索支持。

我创建了一个测试表(使用MyISAM类型,单个文本字段a)并输入了一些示例数据。现在如果我是正确的,以下查询应该返回这两行:

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

但是它不返回任何一个。我已经做了一些研究,我正在做所有正确的事情,就我所知 – 表是一个MyISAM表,FULLTEXT索引被设置。我尝试从提示符和phpMyAdmin运行查询,没有运气。我错过了一些关键的事情吗?

更新:好的,虽然Cody的解决方案在我的测试用例中工作,但在我的实际表中似乎不起作用:

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 ;

和我使用的数据:

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');

我现在运行的查询是:

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

哪个应该返回第3行,header_bg2.png。相反,我得到另一个空的结果集。我的布尔搜索选项如下:

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)

“标题”是在字长限制之内,我怀疑这是一个停止字(我不知道如何获得列表)。有任何想法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值