加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

用一个字符长的单词搜索(MySQL)

发布时间:2021-01-27 07:28:30 所属栏目:MySql教程 来源:网络整理
导读:我的MySQL数据库中有一个表格Books,其标题列(varchar(255))和Edition(varchar(20))列.这些的示例值是“微观经济学简介”和“ 4”. 我想让用户根据书名和版本搜索“图书”.因此,例如,他们可以输入“微观经济学4”,它将得到正确的结果.我的问题是我应该如何

我的MySQL数据库中有一个表格Books,其标题列(varchar(255))和Edition(varchar(20))列.这些的示例值是“微观经济学简介”和“ 4”.

我想让用户根据书名和版本搜索“图书”.因此,例如,他们可以输入“微观经济学4”,它将得到正确的结果.我的问题是我应该如何在数据库方面进行设置.

有人告诉我,全文搜索通常是执行此类操作的好方法.但是,由于该版本有时只是一个字符(“ 4”),因此必须设置全文搜索以查看单个字符(ft_min_word_len = 1)..我听说这效率很低.

那么,我应该如何设置该数据库的搜索?

更新:我知道可以在这里使用CONCAT / LIKE.我的问题是它是否会太慢.我的图书数据库中有成千上万本图书,很多用户都在搜索它.

最佳答案 对于您只对标题和版本感兴趣的应用程序,我怀疑将FULLTEXT索引与MATCH / AGAINST一起使用并将ft_min_word_len减小为1不会对性能产生太大影响(如果您的数据比较冗长或用户撰写的内容,那么我可能会犹豫).

最简单的检查方法是更改??值,修复表以说明新的ft_min_word_len并重建索引,然后执行一些简单的基准测试.

话虽如此,对于您的应用程序,我可能会考虑使用Sphinx.它肯定会更快一些,并且您的内容是相对静态的,因此重新索引(Sphinx的主要缺点IMO)之间的延迟不是问题.另外,通过谨慎使用wordforms和exceptions,您可以将诸如4 / four / fourth / IV之类的所有内容映射到同一令牌,以改善搜索.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读