问题1)为什么会有倒排索引?
问题2)倒排索引是什么?(定义)
问题3)倒排索引的使用场景?
1,为什么会有倒排索引?
我们使用百度搜索,搜索记录的时候,是通过关键词和关键句子。是如何根据这些关键词,查询到对应的文档(页面)这些关键词是在数据库中怎么查询的呢?是用like吗?这样效率也太低了。所以就有了通过关键字查询文档的需求。这个需求肯定不能直接查询数据库,那该怎么办呢,所以ES就是为了解决这个问题。
2,倒排序?
倒排序的目标是根据关键字找到记录。(为了查询当前记录所在的位置)正排序的目标是根据关联字段,找到对应的关联记录内容。(为了查询关联的记录内容。)
例子:何为倒排索引?
常见的正常索引
假设我们要通过id去查找content,我们会将ID做成索引,加快我们的查找
现在的问题是我们要去查到那些content中有b这两个词
首先想到的是依次去尝试content中是否有b,显然在时间复杂度上是很大的,尤其是数据库中数量很多时
那么如何去解决这个问题?
现在都需要引入倒排索引的思想
我们已content做成索引,这样查找ID的时间就快很多
跟正向的索引比较,也就是做了一个倒置,这就是倒排索引的思想
3,倒排序使用场景?
根据倒排序的特性,为了查询当前关键字所以在记录的位置。1、全文搜索(搜索引擎)在一组文档中查找某一单词所在文档及位置2、模糊匹配通过用户的输入去匹配词库中符合条件的词条3、商品搜索通过商品的关键字去数据源中查找符合条件的商品
原文链接:https://mp.weixin.qq.com/s/71r6OZ9TTmD_gZ2XiqFhUw
作者:一起写程序
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦