zoukankan      html  css  js  c++  java
  • ElasticSearch(7)---倒排索引

    在这里插入图片描述

    上一篇:ElasticSearch(6)—Kibana插件

    1.正向索引和反向索引

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

    正向索引:

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

    Doc Words
    Doc1 On the road of life
    Doc2 never retreat from the whole body
    Doc3 enjoy its achievements and get something for nothing
    Doc4 If you don’t work hard, you’re out

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

    Doc Words
    Doc1 On,the, road, of, life
    Doc2 never ,retreat, from, the, whole, body
    Doc3 enjoy ,its, achievements, and, get, something, for, nothing
    Doc4 If ,you, do ,not, work hard, you are out
    反向索引:

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

    Word Doc
    On Doc1,
    the Doc1,Doc2,
    road Doc1
    …… ……

    反向索引不仅能够记录某个单词在文档中出现的位置,还可以记录在文档中出现的次数。比如上表中的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)—分词器
  • 相关阅读:
    GPS授时服务器(卫星同步时钟)科普小知识
    GPS和北斗卫星授时技术在时频领域的应用和发展
    NTP时间同步服务器(NTP时间服务器)在北京邮电大学的应用案例
    北斗时钟源(GPS网络时钟源)在校园网络应用
    NTP时钟源(GPS时间源)介绍与分析 安徽京准电子科技
    搭建ntp时间服务器并配置集群自动时钟同步
    GPS北斗网络时间源在内网域控制器上的设置方法
    肺炎疫情过后最想干的几件事
    提升苏州城市地位的几个建议
    江苏省如要打造一线城市,很简单!
  • 原文地址:https://www.cnblogs.com/wgty/p/12810407.html
Copyright © 2011-2022 走看看