PHP:在查询字符串中查找3个字符的单词以增强MySQL的全文搜索
我正在CakePHP网站上开发一个简单的MySQL全文搜索功能,并注意到MySQL从查询中删除了短字(3个字符或更少)。但是,网站中的某些项目有3个字符的标题,我想将它们包含在结果中。 (由于预算限制,我已经排除使用像Solr这样更强大的搜索设备)
所以我想在查询字符串中找到任意3个字符的单词,并在标题字段上进行快速查找。我能想到的最简单的方法是将字符串
explode()
并用strlen()
迭代生成的数组,找到3个字符的单词。然后我会接受这些话并在标题字段上进行LIKE
搜索,只是为了确保结果中显然没有错过任何内容。
有更好/更简单的方法来解决这个问题吗?
更新:是的,我知道MySQL中的ft_min_word_len
设置。我不认为我想这样做。
没有找到相关结果
已邀请:
2 个回复
柑恫祟
耐扫鹤胶鞭
。 (如果我可以在每个数据库级别上使用它,我可能会考虑它 - 但是否则它太深远了。) 我有这样的功能:
然后我使用返回的字符串搜索
列:
,以补充全文搜索。我随意指定3.5的分数,以便返回的记录可以与其他全文搜索命中一起排序(我选择了相对较高的分数,因为它与记录的
完全匹配)。 这对我来说并不是很优雅,但它解决了这个问题。