我正在尝试在我的网站上构建搜索功能。搜索是网站的主要目的,我在MySQL搜索功能方面遇到了一些问题。
我希望能够针对多个文本字段使用单个搜索字符串进行搜索。
我正在使用MySQL的匹配...来执行全文搜索。我在布尔模式下运行它。
我的SQL看起来像这样:
SELECT * FROM ...
WHERE MATCH(table.field1, table.field2, table.field3)
AGAINST ('laptop' IN BOOLEAN MODE)
目前,这会返回包含laptop
字词的结果,但如果它们包含laptops
字词,则会返回。
我需要它来返回包含单词laptop
或laptops
的结果。
答案 0 :(得分:2)
在短语
的末尾使用通配符*
SELECT * FRO... WHERE MATCH(table.field1, table.field2, table.field3) AGAINST ('laptop*') IN BOOLEAN MODE)
答案 1 :(得分:1)
如果您的要求更为一般,则需要完全支持,例如:例如,在全文索引中将“测试”或“测试”与测试匹配,然后您可以使用替代的全文索引插件。谷歌搜索提出了许多可能性,虽然快速浏览表明大多数是商业而非开源。
答案 2 :(得分:1)
如果您使用的是MySQL 5.1,则可以安装stemmer插件。
答案 3 :(得分:0)
或者您可以使用专用的"可转换的"字段和预先阻止内容(和搜索查询)。雪球项目有多种语言的词干分析器。