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

elasticsearch 倒排索引原理详解

什么是es

elasticsearch 是面向文档型的nosql数据库,一条数据就是一个文档;因为es的出现就是为了搜索而生的,所以es的核心就是索引,甚至说es中 “一切皆索引” 都不为过;最核心的概念就是“倒排索引”;

什么是倒排索引

有倒排就肯定有正排;所以在了解倒排索引之前,先来了解一下什么是正排索引,通过这2种索引的比较会更容易理解es的核心概念;

正排索引(正向索引)

相信大家都学过关系型数据库,像mysql、oracle、sqlserver等等;这些关系型数据库在查询数据时都是使用正排索引的,比如下面表数据中,如果我们要查询某一条记录,只需要通过主键id来关联到整行数据即可,这种通过主键id来关联整行数据的方式就叫做正排索引

但是,现在有一个需求,我要找friends中有李四的记录,就得用模糊查询来实现,而众所周知,模糊查询的效率是非常低下的,因为模糊查询涉及到全表扫描,如果你的表数据中有上千万的数据,这种查询方式无疑会消耗大量的时间;

倒排索引

而反向索引则是将关键字作为索引去查询,在底层会将一段内容拆开,分成一个个关键字,每个关键子对应了哪个主键id,有了这层关联之后,查询的速度自然快了许多;

分词

把一段文字拆开分成不同的词语,这是怎么做到的呢?这就要说到es一个很重要的功能那就是分词器,但是es默认只支持英文分词,不支持中文,若要使用中文分词,需要自行安装IK分词插件;

es和关系型数据库存储数据的概念对比

es的存储结构其实和关系型数据库差不多,只是有一些名词会有差异化,他们的区别如下

关系型数据库Elasticsearch
数据库(database)索引(indices)
表(tables)(类型)types
行(rows)documents(文档)
字段(columns)fields(属性)
去掉Types

这里的Types已经被逐渐弱化,在es6中,一个index下只能包含一个type,而在es7中,types的概念已经被删除,如果我们在一个index下创建2个types的话会报错;

es7以后,以下2个查询的结果是一样的,去掉了types一样可以查询

GET /like/_doc/_search
GET /like/_search
http://www.dtcms.com/a/301556.html

相关文章:

  • SpringBoot3整合Redis
  • 零基础学习性能测试第五章:性能瓶颈分析与调优-网络资源瓶颈分析与优化建议
  • Python调用大模型api并部署到前端的主流技术栈以及具体框架对比
  • 【牛客网C语言刷题合集】(四)
  • Java类加载器与双亲委派模型
  • n8n “Run Once for All Items“和“Run Once for Each Item“区别
  • 深度学习中的计算图与自动微分原理:静态图与动态图的实现差异
  • sd Function 学习笔记
  • BeautifulSoup 使用详解与实战示例
  • WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?
  • WordPress 网站中的“mu-plugins”隐藏后门
  • [每周一更]-(第152期):Go中的CAS(Compare-And-Swap)锁原理详解
  • Java面试宝典:MySQL性能优化
  • ES6模块详解:核心语法与最佳实践
  • 编码器和解码器风格的Transformer架构
  • 使用vue2和 element-ui 做一个点餐收银台系统前端静态项目
  • 数据江湖的“三国演义”:数据仓库、数据湖与湖仓一体的全景对比
  • Gradio全解8——ChatInterfaceChatbot:聊天界面类与聊天机器人(4)——返回复杂响应与直接修改Chatbot值
  • Java Ai(day03)
  • 【秋招笔试】7月26日科大讯飞秋招第一题
  • 【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
  • AI Agent学习
  • MyBatis-Plus IService 接口全量方法实现与测试(续)
  • 【c++】从 “勉强能用” 到 “真正好用”:中文问答系统的 200 行关键优化——关于我用AI编写了一个聊天机器人……(16)
  • 中级全栈工程师笔试题
  • DP之背包基础
  • 详解力扣高频SQL50题之180. 连续出现的数字【困难】
  • CPA会计-5- 投资性房地产
  • 逆向入门(42)程序逆向篇-riijj_cm_20041121
  • 生态环境大数据技术专业的深度解析