用一个字符长的单词搜刮(MySQL)
我的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之类的全部内容映射到统一令牌,以改进搜刮. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |