ElasticSearch(7)---倒排索引

2023-11-13

在这里插入图片描述

上一篇: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)—分词器
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch(7)---倒排索引 的相关文章

随机推荐

  • 如何在智星云平台发挥GPU的最大性能

    在租用智星云服务器后 如果发现训练速度很慢 可以参考下面的方式进行调优 查看gpu利用率 命令 watch nvidia smi 如果发现 nvidia smi显示gpu利用率很低 可以尝试以下操作 a 如果显存还有非常多空余 尝试增大ba
  • Neural Natural Language Processing for Long Texts: A Survey of the State-of-the-Art

    本文是针对NLP处理长文本的一个综述 针对 Neural Natural Languag Processing for Long Texts A Survey of the State of the Art 的翻译 长文本的神经自然语言处理
  • 【转载】[特征向量在线提取工具Pse-in-One 2.0

    1 Pse In One 简单介绍 机器学习分类算法方法主要依赖于根据蛋白质的结构以及功能特性构建的特征集合 通过构造具有辨别性的特征集合来达到令人满意的分类结果 但是使用一个能够反映序列模式信息并能够保持关键序列信息的离散模型或向量是一个
  • HTTPS、UDP/TCP、三次握手、四次挥手

    HTTPS协议 其实就是加密后的HTTP协议 自定制协议 HTTP协议 https到底是如何进行加密传输的 通过ssl加密实现 非对称加密算法 对称加密算法 签名证书 数据直接在网络中传输 很容易被劫持 有很大的安全隐患 对传输过程进行加密
  • HLA仿真中的多联邦

    经常有人问我HLA仿真中的多联邦问题 本讲对此进行解答 1 HLA标准中的联邦指单个联邦 在HLA标准中 联邦定义如下 简单地说 一个联邦用于完成一定的仿真功能 包含一组仿真成员和一个FOM文件 在HLA1 3中 FOM文件的后缀为 fed
  • 安装Vmware workstations 16 Microsoft Visual C++ 2019 x86 Minimum Runtime报错解决办法

    由于电脑更新到了win11系统 之前的Vmware不在被系统支持 需要重新下载新版本的Vmware 在安装Vmware workstations 16时 系统报错界面如下 我们点击OK 会弹出如下提示框 根据这个提示框 可以判断出是电脑中的
  • oracle 11g rac手册(第2版) 高清,Oracle Database11g RAC手册(第2版)_IT教程网

    资源名称 Oracle Database11g RAC手册 第2版 内容简介 根据Oracle ACE提供的专家指导来管理动态的企业级计算基础设施 戈帕拉克里希南所著的 Oracle Database 11g RAC手册 第2版 进行了全面
  • web前端面试题(全)

    近来看到网上格式各样的web前端求职的面试题 接下来我用我的经验总结了一套在面试过程中高频率问到的面试题 希望能帮助各位求职者在求职的过程中顺利通过 废话不多说 直接说题 一 HTML5部分 1 说一下对css盒模型的理解 答 css盒子模
  • 【总结一】现代密码学

    目录 1 密码学概述 1 1 密码学的基本概念 1 1 1 为什么要学密码学 1 1 2 什么是密码学 1 1 2 密码算法的基本模型 1 1 3 密码算法的分类 1 2 密码分析学 1 3 古典密码算法 1 3 1 置换密码 1 3 2
  • 对表的复杂查询

    1 连接查询 数据库中的各个表中存放着不同的数据 用户往往需要用多个表中的数据来组合 提炼出所需要的信息 如果一个查询需要对多个表进行操作 就称为连接查询 例 对student sno clno sname ssex sage course
  • Windows上安装Hadoop 3.x

    目录 0 安装Java 1 安装Hadoop 1 1 下载Hadoop 1 2 下载winutils 2 配置Hadoop 1 hadoop env cmd 2 创建数据目录 3 core site xml 4 hdfs site xml
  • 解决textarea文字不顶头显示/点击textarea 不是第一行

    问题描述 表单提交后发现内容前多了很多空格 而且每次更新表单提交都会有空格增加 后来发现 每次文字从数据库读到textarea后文字都不居左 在排出样式 转义字符等问题后 baidu google了一会始终没找到答案 后来发现原来问题处在H
  • 网络--正向代理和反向代理

    正向代理的概念 正向代理 也就是传说中的代理 他的工作原理就像一个跳板 简单的说 我是一个用户 我访问不了某网站 但是我能访问一个代理服务器 这个代理服务器呢 他能访问那个我不能访问的网站 于是我先连上代理服务器 告诉他我需要那个无法访问网
  • 如何将VS Code扩展插件迁移出系统盘

    背景 Windows的C盘 系统盘 容量经常不够用 经过排查发现VSCode的扩展插件所在目录占用了很大空间 为了节省系统盘的空间 需要将VSCode扩展插件迁移到D盘 环境 Windows VS Code 全称是Visual Studio
  • MySQL的JSON数据类型介绍以及JSON的解析查询

    文章目录 概述 JSON 数据类型的意义 JSON相关函数 测试 创建测试表 插入数据 查询数据 条件查询 优化JSON查询 解决方案 总结 概述 MySQL从5 7后引入了json数据类型以及json函数 可以有效的访问json格式的数据
  • iOS音视频—FFmepg:iOS平台下集成和应用

    1 在iOS平台下集成和应用FFmpeg Mac配置FFmpeg环境 1 安装homebrew ruby e curl fsSL https raw githubusercontent com Homebrew install master
  • Maven中测试插件(surefire)的相关配置及常用方法

    原创文章 版权所有 允许转载 标明出处 http blog csdn net wanghantong 1 在Maven中配置测试插件surefire html view plain copy
  • 通讯录管理系统(C++)

    1 菜单功能 功能描述 用户选择功能的界面 步骤 封装函数showMenu 显示该界面 在main函数中调用封装好的函数 菜单界面 void showMenu cout lt lt 1 添加联系人 lt lt endl cout lt lt
  • \t转义字符占几个字节?

    这个问题 在你学习编程过程中可能会考虑到 有时为了字节对齐而使用转义符中 t 但是到底 t占用几个空格呢 下面我们首先通过程序来体验下 然后在总结 include
  • ElasticSearch(7)---倒排索引

    上一篇 ElasticSearch 6 Kibana插件 1 正向索引和反向索引 涉及到索引的概念的时候 首先需要知道 索引可以分为正向索引和反向索引 也可以理解为倒排索引 正向索引 正向索引可以简单理解为从文档到单词 例如现在有4个文档