当使用MySQL匹配...针对全文搜索执行搜索“笔记本电脑”时,如何匹配“笔记本电脑”和“笔记本电脑”?

时间:2010-02-08 21:22:48

标签: sql mysql search full-text-search

我正在尝试在我的网站上构建搜索功能。搜索是网站的主要目的,我在MySQL搜索功能方面遇到了一些问题。

我希望能够针对多个文本字段使用单个搜索字符串进行搜索。

我正在使用MySQL的匹配...来执行全文搜索。我在布尔模式下运行它。

我的SQL看起来像这样:

SELECT * FROM ... 
WHERE MATCH(table.field1, table.field2, table.field3) 
                           AGAINST ('laptop' IN BOOLEAN MODE)

目前,这会返回包含laptop字词的结果,但如果它们包含laptops字词,则会返回。

我需要它来返回包含单词laptoplaptops的结果。

4 个答案:

答案 0 :(得分:2)

在短语

的末尾使用通配符*
SELECT * FRO... WHERE MATCH(table.field1, table.field2, table.field3) AGAINST ('laptop*') IN BOOLEAN MODE)

答案 1 :(得分:1)

如果您的要求更为一般,则需要完全支持,例如:例如,在全文索引中将“测试”或“测试”与测试匹配,然后您可以使用替代的全文索引插件。谷歌搜索提出了许多可能性,虽然快速浏览表明大多数是商业而非开源。

答案 2 :(得分:1)

答案 3 :(得分:0)

或者您可以使用专用的"可转换的"字段和预先阻止内容(和搜索查询)。雪球项目有多种语言的词干分析器。