mysql全文搜索实现模糊查询_如果希望建立一个包含上千万文章的网站,并且实现全文检索、及模糊查询,数据库是不是不能选择mysql?...

全文检索能够利用倒排索引,不是模糊查询.

倒排索引简单点说就是可以根据"属性值"快速找到"属性名".

你可以把"文章里包含的关键词"理解为"属性值",把"文章编号"理解为属性名.

这跟我们根据"文章编号(索引)"查询"文章内容",正好相反,所以叫做"倒排".

倒排索引的结构其实就是很简单的映射:

"关键词1": "文档1编号", "文档2编号"

"关键词2": "文档1编号", "文档3编号"

可见全文检索系统中,生成倒排索引的开销是比较大的,跟文章的关键词数量成正比.

题外话:像商城里的根据多种属性的名值对(比如价格区间/颜色/尺码/品牌等等)筛选商品这种查询,也能通过"倒排索引"来优化查询.跟文章的关键词相比,这些商品的属性(名值对ID)是事先确定的,不需要通过分词来获取.

MySQL是支持全文索引,所以可以基于MySQL实现全文检索.如果你没有字典,那你就使用二元分词(n-gram=2).

二元分词跟中文分词的一些区别如下:

二元分词不依赖词典,中文分词依赖词典.

二元分词分词速度要比中文分词快.

二元分词的索引大小要比中文分词大,分词字数约为原文字数的2倍.

二元分词的索引虽然比较大,但能保证搜索结果覆盖用户输入的关键词.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值