[英]Mysql full-text search does not work
这是我的数据库代码。 问题结果显示0而不是1
CREATE TABLE IF NOT EXISTS `house_details` (
`houses_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`everything_search` text NOT NULL
FULLTEXT KEY `everything_search` (`everything_search`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
INSERT INTO `house_details` (`everything_search`) VALUES
('Good very good new-market Mymenshing Family sourov 4564'),
这是我的数据库查询命令
SELECT * FROM house_details WHERE MATCH (everything_search) AGAINST ('Mymenshing') > 0 ORDER BY `houses_id` DESC LIMIT 0,3
* 结果是* MySQL返回了一个空结果集(即零行)。 (查询花费0.0013秒)
它在布尔模式下对我有用:
SELECT * FROM house_details WHERE MATCH (everything_search)
AGAINST ('Mymenshing' In Boolean mode) > 0 ORDER BY `houses_id` DESC LIMIT 0,3
在这里看看: http : //www.sqlfiddle.com/#!2/d4471/6
进行一些重新搜索后,我发现Mysql中的match-agains重新存在错误: http ://bugs.mysql.com/bug.php?id=19583
这是解决“停用词”的方法: http ://www.nivas.hr/blog/2009/09/15/how-to-disable-mysql-fulltext-stopwords/http: //www.sqlfiddle.com/ #!2 / d4471 / 6
我认为您在where子句中不需要>0
:
SELECT * FROM house_details
WHERE MATCH (everything_search) AGAINST ('Mymenshing')
ORDER BY `houses_id` DESC LIMIT 0,3 ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.