设为首页 - 加入收藏 华夏网 ()- 云主机,资讯,互联网,人工智能,云计算,大赢家论坛,区块链,VR,站长网!
热搜: 2017 2018 什么 市场
当前位置: 主页 > 水果奶奶论坛 > 正文

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

发布时间:2021-01-26 21:30 所属栏目:[水果奶奶论坛] 来源:网络整理
导读:我的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之类的所有内容映射到同一令牌,以改善搜索.

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章