MySQL全文搜索没有';不适用于特定的单词


MySQL fulltext search doesn't work for specific word

我有一个奇怪的问题:MySQL(PHP/5.217上的MySQL-5.1.61)全文搜索不适用于单词"asus"。我有产品表:

CREATE TABLE IF NOT EXISTS product (
  pid int unsigned NOT NULL AUTO_INCREMENT,
  vendor text NOT NULL,
  series text NOT NULL,
  PRIMARY KEY (pid),
  FULLTEXT KEY search (vendor,series)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

以及一些值:

INSERT INTO product (vendor,series) VALUES ('Apple','iPad');
INSERT INTO product (vendor,series) VALUES ('Asus','Eee Slate');
INSERT INTO product (vendor,series) VALUES ('Asus','Nexus 7');
INSERT INTO product (vendor,series) VALUES ('Sony','Xperia Tablet Z');

当我查询时

SELECT * FROM product WHERE MATCH (vendor,series) AGAINST ('Sony');

它工作得很好,但当场是"华硕"或"飞马"时,它就不工作了。我已经设置了ft_stopword_file="并重新创建DB-没有任何更改。最小长度是4,所以我真的不知道怎么了。

搜索结果为空,因为单词"Asus"至少出现在50%的行中。因此,它被有效地视为权宜之计。

(取自http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html)

由于表引擎MyISAM的限制,您的搜索结果为空。

在mysql文档中,当一个单词出现在至少50%的行中时。它被视为一个停止语,不返回任何结果。要获得小表的结果,请使用InnoDB引擎。

链接:https://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html

相关文章: