美文网首页
倒排索引

倒排索引

作者: Qihang | 来源:发表于2021-10-17 22:54 被阅读0次

倒排索引

倒排索引中有两个非常重要的概念:

  • 文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息
  • 词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条

创建倒排索引是对正向索引的一种特殊处理,流程如下:

  • 将每一个文档的数据利用算法分词,得到一个个词条
  • 创建表,每行数据包括词条、词条所在文档id、位置等信息
  • 因为词条唯一性,可以给词条创建索引,例如hash表结构索引

如图:


image-20210720200457207.png

倒排索引的搜索流程如下(以搜索"华为手机"为例):

1)用户输入条件"华为手机"进行搜索。

2)对用户输入内容分词,得到词条:华为手机

3)拿着词条在倒排索引中查找,可以得到包含词条的文档id:1、2、3。

4)拿着文档id到正向索引中查找具体文档。

如图:

image-20210720201115192.png

虽然要先查询倒排索引,再查询倒排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!无需全表扫描。

正向和倒排

那么为什么一个叫做正向索引,一个叫做倒排索引呢?

  • 正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程

  • 倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程

是不是恰好反过来了?

那么两者方式的优缺点是什么呢?

正向索引

  • 优点:
    • 可以给多个字段创建索引
    • 根据索引字段搜索、排序速度非常快
  • 缺点:
    • 根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描。

倒排索引

  • 优点:
    • 根据词条搜索、模糊搜索时,速度非常快
  • 缺点:
    • 只能给词条创建索引,而不是字段
    • 无法根据字段做排序

相关文章

  • Elasticsearch(一):概念与基本API

    安装 Elasticsearch 常用 API index Document 倒排索引与分词 倒排索引 倒排索引与...

  • ElasticSearch(基础)

    1.1 倒排索引 倒排索引原理?? ElasticSearch使用一种称为 ==倒排索引== 的结构,它适用于快...

  • ElasticSearch 倒排索引简析

    内容概要 倒排索引是什么?为什么需要倒排索引? 倒排索引是怎么工作的? 1. 倒排索引是什么? 假设有一个交友网站...

  • 搜索引擎索引-倒排索引

    倒排索引基础 倒排索引示范 Elasticsearch中使用一种称为倒排索引的结构,适用于快速的全文搜索。一个倒排...

  • ElasticSearch知识库

    一、原理篇 Elasticsearch 的倒排索引是什么? 倒排索引=term字典+docId倒排表,term字典...

  • Elasticsearch学习笔记(06) - 倒排索引简介

    Elasticsearch的核心是基于倒排索引。因此,我们有必要了解一下倒排索引算法。 简单的例子 既然有倒排索引...

  • IMI 倒排多索引

    倒排多索引 倒排多索引体现在倒排索引的的时候,使用PQ M=2来代替倒排的K-means,把整个数据集划分为两个子...

  • Elasticsearch之映射与分析

    倒排索引 Elasticsearch 使用一种称为 倒排索引 的结构,它适用于快速的全文搜索。一个倒排索引由文档中...

  • 搜索引擎之倒排索引浅析

    上一篇文章 ElasticSearch 术语中提到了倒排索引,那么这篇文章就来讲解下什么是倒排索引,倒排索引的数据...

  • ElasticSearch第5节 倒排索引、分词器

    一、倒排索引 Elasticsearch使用一种称为倒排索引的结构,它适用于快速的全文捜索.一个倒排索引由文档中所...

网友评论

      本文标题:倒排索引

      本文链接:https://www.haomeiwen.com/subject/mzceoltx.html