当前位置: 首页 > news >正文

Elasticsearch倒排索引

什么是倒排索引

倒排索引(Inverted Index)是一种将文档中的每个单词映射到包含该单词的文档列表上的数据结构

倒排索引的构建过程

文档1: “我爱吃苹果”
文档2: “我爱吃香蕉”
文档3: “我喜欢苹果和香蕉”
  • 文档分词:将文档中的文本内容进行切分,生成一系列的词项(tokens)。

文档1: ["我", "爱", "吃", "苹果"]
文档2: ["我", "爱", "吃", "香蕉"]
文档3: ["我", "喜欢", "苹果", "和", "香蕉"]
  • 建立词项列表:为每个唯一的词项创建一个列表,记录包含该词项的文档和位置。这样就形成了一个词项-文档映射。

  • 构建倒排表:创建一个包含所有词项的表,每个词项映射到其出现的文档ID及在文档中的位置。最终的结构类似于:

    • "我" -> [doc1, doc2, doc3]
      "爱" -> [doc1, doc2]
      "吃" -> [doc1, doc2]
      "苹果" -> [doc1, doc3]
      "香蕉" -> [doc2, doc3]
      "喜欢" -> [doc3]
      "和" -> [doc3]

查询过程

当用户进行搜索时,例如查询“苹果”,Elasticsearch会查找倒排索引,找到与“苹果”相关的文档列表(在本例中为doc1和doc3),并根据相关性(可能还会计算TF-IDF、BM25等评分模型)返回结果。

优化与扩展

  • 压缩:由于倒排索引可能会占用大量存储空间,通常会对其进行压缩以减少存储成本。

  • 分片和副本:为了提高并发访问能力和故障恢复,Elasticsearch允许把倒排索引分为多个分片(shard)和副本(replica),从而分散数据存储和请求处理的压力。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 资料分析系统课-刘文超老师
  • ImportError: cannot import name ‘DglNodePropPredDataset‘ from ‘ogb.nodepropp
  • 超时重试与风险学习
  • Linux 删除虚拟环境命令
  • 【前端】CSS控制style样式失效
  • 1 模拟——67. 二进制求和
  • mac m2 安装 nvm
  • Java操作Elasticsearch的实用指南
  • 记录工作中学习进度
  • 大零售时代:开源 AI 智能名片、2+1 链动与 O2O 商城小程序引领融合新趋势
  • 【NLP自然语言处理】文本的数据分析------迅速掌握常用的文本数据分析方法~
  • Android中如何实现adb向应用发送特定指令并接收返回
  • 攻防世界 supersqli
  • 【Java中的位运算和逻辑运算详解及其区别】
  • 橘子学ES实战操作之管道类型Ingest pipelines的基本使用
  • js中的正则表达式入门
  • oschina
  • python学习笔记-类对象的信息
  • sessionStorage和localStorage
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 订阅Forge Viewer所有的事件
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 通信类
  • 大数据全解:定义、价值及挑战
  • ​力扣解法汇总946-验证栈序列
  • # centos7下FFmpeg环境部署记录
  • #QT(QCharts绘制曲线)
  • #stm32整理(一)flash读写
  • $.ajax,axios,fetch三种ajax请求的区别
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (备忘)Java Map 遍历
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (回溯) LeetCode 131. 分割回文串
  • (六)激光线扫描-三维重建
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (自用)网络编程
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET DataGridView数据绑定说明
  • .net 调用海康SDK以及常见的坑解释
  • .NET8使用VS2022打包Docker镜像
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [17]JAVAEE-HTTP协议
  • [2018-01-08] Python强化周的第一天