ES(ElasticSearch)倒排索引

news2025/1/15 13:19:31

目录

 正排与倒排索引

1.正排索引

作用:

优点:

缺点:

2.倒排索引

原理:

 倒排索引的构建流程:

 倒排索引的搜索流程:

优点:

缺点:

3. 应用场景

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

  1. 词条(term):索引里面最小的存储和查询单元,对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。
  2. 词汇表(Vocabulary) :这是一个包含所有不重复词汇的列表,每个词汇都有一个唯一的词汇ID。
  3. 倒排列表(Inverted List) :对于每个词汇,倒排列表记录了包含该词汇的文档ID或文档的位置信息。这使得搜索引擎可以快速地找到包含特定词汇的文档。
  4. 文档( Document ):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息

 正排与倒排索引

1.正排索引

正排索引(forward index)是信息检索和数据库系统中常用的一种数据结构,用于按顺序存储和访问文档或记录的详细信息。正排索引将每个文档的内容和其他相关信息按照一定的顺序和格式存储在一个连续的数据结构中,以便于后续的检索和访问。

图例:

作用:

如果是根据id查询,那么直接走索引,查询速度非常快,通常用于支持倒排索引(inverted index)的建立和查询。

优点:

可以给多个字段创建索引 根据索引字段搜索、排序速度非常快

缺点:

1. 存储需求大:正排索引存储了每个文档的详细信息,包括内容和元数据。对于大规模文档集合,需要大量的存储空间来维护这些信息。

2. 访问效率低:正排索引通常是顺序存储的,要求对整个索引进行扫描或者按顺序访问来获取特定文档的详细信息。在需要随机访问或者大规模并发访问时,可能会导致访问效率不高,特别是当数据量巨大时,内存或磁盘访问延迟可能成为瓶颈。

3.不适合全文搜索:正排索引虽然包含文档内容,但不像倒排索引那样针对文本内容建立反向索引以支持全文搜索。因此,在需要快速全文搜索和相关性排序的场景下,倒排索引通常更为适用。

2.倒排索引

倒排索引(inverted index),用于快速查找包含特定单词的文档或文档集合。与正排索引不同,倒排索引以单词或者词项作为索引的关键,并记录包含这些单词的文档位置或标识符。倒排索引主要用于支持文本搜索引擎等应用,能够快速定位到包含用户查询单词的文档。

图例:

原理:

倒排索引是一种反向索引结构,它将文档中的每个词汇映射到它出现的文档或文档的位置。它包括两个主要部分:

  1. 词汇表(Vocabulary) :这是一个包含所有不重复词汇的列表,每个词汇都有一个唯一的词汇ID。
  2. 倒排列表(Inverted List) :对于每个词汇,倒排列表记录了包含该词汇的文档ID或文档的位置信息。这使得搜索引擎可以快速地找到包含特定词汇的文档。
 倒排索引的构建流程:
  1. 文本预处理:将文档内容分解成单独的词汇或短语,将词汇统一为基本形式,去除常见但无实际检索价值的词。
  2. 建立词汇表:创建一个包含所有独特词汇的列表,并为每个词汇创建一个倒排列表。
  3. 构建倒排列表:对于每个词汇,记录所有包含该词汇的文档的标识符(如文档ID)。这些记录通常会存储在一个列表或数组中。
  4. 索引优化:对索引表进行压缩,以减少存储空间和提高访问效率,根据索引大小和访问模式,优化索引的内存缓存和磁盘读写策略,以提高性能。
 倒排索引的搜索流程:
  1.  用户输入一个词语,系统首先对查询进行预处理,包括分词、词干提取等,以便与倒排索引中的词项进行匹配。
  2. 系统根据预处理后的查询词项,在倒排索引中查找每个词项对应的文档列表。
  3. 如果查询中有多个词项,系统将合并这些词项的倒排列表,找出它们的交集或并集,得到包含所有查询词项的文档集合。
  4. 根据每个文档在倒排列表中的相关性得分(如文档频率、位置信息等),对搜索结果进行排序。

搜索流程举例:

 

优点:

根据词条搜索、模糊搜索时,速度非常快

缺点:

只能给词条创建索引,而不是字段无法根据字段做排序(此处所指的字段是json中的字段)

3. 应用场景

在实际应用中,正排索引和倒排索引往往是结合使用的。例如,在数据库系统中,正排索引用于快速访问数据记录,而倒排索引用于实现高效的文本搜索。在搜索引擎中,倒排索引用于处理用户的搜索查询,快速返回相关结果,而正排索引则用于获取结果中文档的详细信息。

总结来说,正排索引和倒排索引各有特点,它们在不同的场景下发挥着重要的作用。正排索引适合于基于唯一标识符的数据检索,而倒排索引则更适合于全文搜索和关键词检索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Skyeye云智能制造企业版源代码全部开放

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台],适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…

【图文详解】Spring是如何解决循环依赖的?

Spring是如何解决循环依赖的呢? 很多小伙伴在面试时都被问到过这个问题,刷到过这个题的同学马上就能回答出来:“利用三级缓存”。面试官接着追问:“哪三级缓存呢?用两级行不行呢?” 这时候如果没有深入研究…

AI副业赚钱免费资源大汇总

在当今数字化时代,人工智能(AI)的热潮无处不在,许多人对于如何利用AI技术来创造收入机会感到好奇。本文将介绍一个名为aimoneyhunter的开源项目,这是一个专注于AI副业赚钱的资源汇总,旨在帮助人们在AI时代找…

技术干货 | 针对Spring-Boot 框架漏洞的初探

0x1 前言 这篇文章主要是给师傅们介绍下Spring-Boot 框架漏洞的打法以及主要对于Spring-Boot漏洞的接口泄露信息进行一个分析,后面使用了曾哥的Spring-Boot漏洞扫描工具,可以很大减轻我们对于这个漏洞接口的分析。 0x2 Spring框架简述 Spring是一个ja…

Ollama 在Windows Server 2019中部署 qwen:4b

1、环境 1.1、Ollama 1.2、Windows Server 2019 1.3、qwen:4b 1.4、nginx-1.27.0 2、部署后效果如下。 3、环境安装包下载链接包含本文所有的配置内容。 https://download.csdn.net/download/xingchengaiwei/89571623 4、安装ollama,官网下载地址Download Ollama…

【SpringCloud】企业认证、分布式事务,分布式锁方案落地-2

目录 高并发缓存三问 - 穿透 缓存穿透 概念 现象举例 解决方案 缓存穿透 - 预热架构 缓存穿透 - 布隆过滤器 布隆过滤器 布隆过滤器基本思想​编辑 了解 高并发缓存三问 - 击穿 缓存击穿 高并发缓存三问 - 雪崩 缓存雪崩 解决方案 总结 为什么要使用数据字典&…

一文带你了解RAG(检索增强生成) | 概念理论介绍+ 代码实操

一、LLMs 已经具备了较强能力了,为什么还需要 RAG(检索增强生成)? 尽管 LLM 已展现出显著的能力,但以下几个挑战依然值得关注: 幻觉问题:LLM 采用基于统计的概率方法逐词生成文本,这一机制内在地导致其可能出现看似逻…

PPT模板替换秘籍:一键撤销原模板,轻松更换新风格!

将PPT中的模板换成另一个模板,可以通过几种不同的方法实现。以下是几种常用的方法: 方法一:使用PowerPoint内置的设计选项卡 打开PowerPoint:首先,打开你想要更改模板的PPT文件。 选择“设计”选项卡:在…

Python设计模式 - 工厂方法模式

定义 工厂方法模式是一种创建型设计模式,它定义一个创建对象的接口,让其子类来处理对象的创建,而不是直接实例化对象。 结构 抽象工厂(Factory):声明工厂方法,返回一个产品对象。具体工厂类都…

【学术会议征稿】2024年第七届机械工程与智能制造国际会议(WCMEIM 2024)

2024年第七届机械工程与智能制造国际会议(WCMEIM 2024) 2024 7th World Conference on Mechanical Engineering and Intelligent Manufacturing WCMEIM会议属一年一度的国际学术盛会。因其影响力及重要性,WCMEIM会议自创建筹办以来&#xff…

i 评论,网页评论插件使用示例

网页快速实现评论功能,i 评论插件,来试试吧! https://andi.cn/page/621617.html

生成模型 VQVAE:Neural Discrete Representation Learning

注:加粗下划线名词详解见文章末 了解VQGAN之前,还学习了VQVAE(Vector QuantisedVariational AutoEncoder))这篇论文Neural Discrete Representation Learning,看了几个不错的学习视频 进行了深入了解 VQVAE…

搜狐视频的长期主义,让高精尖知识走近普罗大众

“如果你忽略了量子力学,就没有稳定的电磁系统。” “没有结构,我们就像灰烬一样。” 近日,在一场对谈中,张朝阳与美国哈佛大学教授、物理系系主任,美国国家科学院院士、狄拉克奖与基础物理学突破奖获得者库姆伦瓦法…

Matlab编程资源库(11)多项式计算

一、多项式的四则运算 1.多项式的加减运算 2.多项式乘法运算 函数conv(P1,P2)用于求多项式P1和P2的乘积。 这里,P1、P2是两个多项式系数向量。 3.多项式除法 函数[Q,r]deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项…

这么发sci论文,审稿人看了都流泪

前言 早上起来,忐忑的你打开审稿人的意见,看到这样一条评语,我们表述不够精准,口语化严重,学视性较弱。 你瞬间就清醒了,只能再次打开不知修改了多少遍的终稿,再次修改,心里想着&a…

魔法项链-小红书2024笔试(codefun2000)

题目链接 魔法项链-小红书2024笔试(codefun2000) 题目内容 你有一个魔法项链,现在你想要强化一下这件装备。你可以将魔法项链看做一条从头到尾串有 n 个不同魔力值宝石的绳子。根据你目前的冒险等级,你可以仅将其中的一颗宝石的魔力值强化并改变为 v 。…

基于OpenCV C++的网络实时视频流传输——Windows下使用TCP/IP编程原理

1.TCP/IP编程 1.1 概念 IP 是英文 Internet Protocol (网络之间互连的协议)的缩写,也就是为计算机网络相互连接进行通信而设计的协议。任一系统,只要遵守 IP协议就可以与因特网互连互通。 所谓IP地址就是给每个遵循tcp/ip协议连…

书生大模型实战营--L1关卡-Llamaindex RAG实践

一、安装llamaindex库 pip install llama-index pip install llama-index-embeddings-huggingface 二、问2024年巴黎奥运会 中国队获得几枚金牌,无法回答该问题 三、构建Llamaindex RAG 1、初始化llm 2、构建词向量模型 下载模型:git clone https://…

【论文阅读笔记】Lite-SAM Is Actually What You Need for Segment Everything

1.论文介绍 Lite-SAM Is Actually What You Need for Segment Everything Lite-SAM是您实际上所需的分割一切的工具 2024年 arxiv Paper 2.摘要 Segment Anything模型(SAM)以其优越的性能给分割领域带来了重大变化,但其对计算资源的巨大需…

设置浏览器ie兼容模式

点击设置 设置IE模式