我正在使用MySQL数据库。
我有一个产品数据库,用户可以在其中搜索他们想要购买的任何产品。
我遇到布尔搜索问题,因为如果用户搜索“new ipad”或“ipad 4g”,我想先返回最相关的结果,但是,我返回的结果与全文索引不准确仅索引超过4个字符的单词。
有解决方法吗?如果我将ft_min_word_len变量更改为2个字符而不是4然后重新索引,那是否会造成巨大的性能损失?
答案 0 :(得分:0)
您可以减少ft_min_word_len
,但它不仅会影响该表,还会影响该服务器上所有MySQL数据库中的所有表。
您的第二个选项是全文搜索引擎,例如Sphinx,可能有一个选项。
您的第三个选择是根据搜索字词更改搜索查询。在程序端,您可以检测文本是否小于ft_min_word_len
。如果是,则使用LIKE /% %/
运行查询;否则,请使用全文搜索。