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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 18:47   36   0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP