mysql全文检索 公司,MySql中文全文检索的一种实现方案

MySql中文全文检索的一种实现方案

在数据库中查找包含某一个关键词的内容,用SQL语句的like写起来非常简单。但是,在实际应用中,like的效率非常低,为了能满足在有大量数据的情况下快速查找的需求,我们需要对数据建立索引。

对某一特定内容的数据建立全文索引无疑有不小的工作量。但是,已经有很多人、很多工具都做了很多这方面的努力,本文讲述的就是一种利用Mysql进行中文全文检索的方案。

Mysql本身就支持全文检索,但是,目前仍然没有支持对中文进行全文检索的版本,不过我们仍然可以通过将中文转换成MySql易于识别的文字来使用这个功能。通常一个比较好的方法是先将中文分词,然后转化成为拼音或者Base64编码等用英文字符来表示的字符串。

中文分词其实是个比较难的东西,相对于英文分词来说中文分词涉及到很多人工智能方面的算法,好在现在有许多开源的中文分词库,我们在projspider项目中采用的是结巴分词,这是Python下比较常用的分词库,经过测试分词效果不错。

分词后将每个独立的词转换为拼音,将汉字转换为拼音用的是查表法,这同样也不需要自己去写,网上有许多现成的代码和对应表。

转换完成后将由拼音和分隔符组成的字符串储存在一个独立的字段,查找时同样也需要先对查找的字符串进行中文分词,然后转换为拼音,再使用match against查找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值