我有一个名为"products“的数据库和一个包含以下列的全文索引:title和description。我所有的产品都是润滑油(油),有两种类型:工业润滑油和汽车润滑油,使用率为55%-45%。如果我搜索auto-moto油,那么它将不会返回任何结果,因为"auto-moto“关键字出现在超过一半的行中,并且所有行中的油,所以MySQL将它们放入STOPWORDS列表中。
我使用的是PHP。如何进行查询才能返回正确结果?
发布于 2010-12-15 20:19:00
答案是IN BOOLEAN MODE。如果您使用布尔模式,那么mysql将忽略键出现在超过50%的行中。同时,它还有一个非常强大和有用的能力:AGAINST ('*key*')。
发布于 2010-12-19 06:32:40
会不会是因为auto-moto包含一个"-“字符,根据http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html,它会执行NOT搜索,所以所有带有"auto”而不是"moto“的行
尝试搜索"auto moto“
另外,您是否可以发布您正在使用的实际SQL,这可能有助于诊断问题
https://stackoverflow.com/questions/4449431
复制相似问题