4

我有一个名为“产品”的数据库和一个包含列的 FULLTEXT 索引:titledescription. 我所有的产品都是润滑油(油),它有两种类型:工业和汽车,比率为55%-45%。如果我在 auto-moto oils 之后进行搜索,那么它将不会返回任何结果,因为“auto-moto”关键字出现在超过一半的行中,并且所有这些行中都存在油,因此 MySQL 将它们放入 STOPWORDS列表。

我正在使用 PHP。如何进行该查询以返回正确的结果?

4

2 回答 2

3

答案是IN BOOLEAN MODE。如果您使用布尔模式,那么 mysql 将忽略该键存在于超过 50% 的行中。同时它有一个非常强大和有用的能力:AGAINST ('*key*')

于 2010-12-15T12:19:00.463 回答
0

可能是因为 auto-moto 包含一个“-”字符,根据 http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html执行 NOT 搜索,所以所有带有“auto”的行” 但不是“摩托车”

尝试搜索“汽车摩托车”

您也可以发布您正在使用的实际 SQL,可能有助于诊断问题

于 2010-12-18T22:32:39.520 回答