ElasticSearch(7)---倒排索引

在这里插入图片描述

上一篇:ElasticSearch(6)—Kibana插件
1.正向索引和反向索引

  涉及到索引的概念的时候,首先需要知道,索引可以分为正向索引和反向索引(也可以理解为倒排索引)。

正向索引:

  正向索引可以简单理解为从文档到单词。例如现在有4个文档,

DocWords
Doc1On the road of life
Doc2never retreat from the whole body
Doc3enjoy its achievements and get something for nothing
Doc4If you don’t work hard, you’re out

  建立正向索引就会先解析每个文档中出现的单词,然后建立从文档到单词的映射关系。

DocWords
Doc1On,the, road, of, life
Doc2never ,retreat, from, the, whole, body
Doc3enjoy ,its, achievements, and, get, something, for, nothing
Doc4If ,you, do ,not, work hard, you are out
反向索引:

  反向索引可以简单理解为从单词到文档。还是以上面4个文档为例,建立反向索引 就会建立单词到文档的映射关系

WordDoc
OnDoc1,
theDoc1,Doc2,
roadDoc1
…………

反向索引不仅能够记录某个单词在文档中出现的位置,还可以记录在文档中出现的次数。比如上表中的OnDoc1中出现1次,单词youDoc4中出现了2次。

2.ElasticSearch为什么不用正向索引?

  如果使用正向索引,用户在输入搜索关键词的时候,会遍历所有的文档,找出包含该关键词的文档。再向用户进行数据响应。但是ElasticSearch往往是用来处理一些拥有海量数据的应用需求(如百度搜索等),使用正向索引效率太低,无法实时响应数据。所以此时使用反向索引(倒排索引)更加合理。

3.倒排索引案例

  现在有下面这样一个栗子,我们需要对下面图中所示的文档建立倒排索引。(图片来源于网络)

在这里插入图片描述
使用分词器将文档中的内容进行单词切分。并记录出现这些单词的文档编号。
在这里插入图片描述
如果现在某用户想要搜索谷歌,那么就可以直接找到出现谷歌单词的文档有:1,2,3,4,5。倒排索引不仅能够记录关键词的位置信息,还可以记录关键词出现的频率。比如下图中的Wave在文档4中出现了1次,拉斯在文档3中出现了1次,在文档5中出现了1次。

在这里插入图片描述
在进行搜索结果展示的时候,会根据索引的匹配度来进行打分,分数越高,排名越高。
如现在搜索谷歌加盟网站

单词文档1文档2文档3文档4文档5
谷歌*****
加盟***
网站*

按照上图表中的星号分布所示,文档5打分最高,匹配度最高。

下一篇:ElasticSearch(8)—分词器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值