当前位置:网站首页>灵魂一问:为什么ES比MySQL更适合复杂条件搜索?
灵魂一问:为什么ES比MySQL更适合复杂条件搜索?
2022-07-27 15:36:00 【InfoQ】
ElasticSearch 简介


- ElasticSearch 中的索引 Index 类似于 MySQL 中的数据库 Database;
- ElasticSearch 中的类型 Type 类似于 MySQL 中的表 Table;需要注意,这个概念在 7.x 版本中被完全删除,而且概念上和 Table 也有较大差异;
- ElasticSearch 中的文档 Document 类似于 MySQL 中的数据行 Row,每个文档有多个字段 Filed 组成,这个Filed 就类似于 MySQL 的 Column;
- ElasticSearch 中的映射 Mapping 是对索引库中的索引字段及其数据类型进行定义,类似于关系型数据库中的表结构 Schema;
- ElasticSearch 使用自己的领域语言 Query DSL 来进行增删改查,而 MySQL 使用 SQL 语言进行上述操作。
倒排索引



联合索引查询
- 使用 Skip List 结构,同时遍历 Score 和 Author 查询出来的 Posting List,利用其 Skip List 结构,相互跳跃对比,得出合集。
- 使用 Bitset 结构,对 Score 和 Author 查询出来的 Posting List 的值计算出各自的 Bitset,然后进行 AND 操作。
跳表合并策略

Bitset 合并策略

- 基数小于 2 ^ 12 次方即 4096时,使用unsigned short类型的有序数组来存储,最大消耗空间就是 8 KB。
- 基数大于 4096 时,则使用大小为 2 ^ 16 次方的普通 bitset 来存储,固定消耗 8 KB。当然,有些时候也会对 bitset 进行行程长度编码(RLE)压缩,进一步减少空间占用。
后记
边栏推荐
- Branch loop statement of C language
- ES6 array method and pseudo array to array method
- Node package depends on download management
- Subject 3: straight driving
- 【数据库系统概论(王珊)】第1章——绪论
- 详解二叉树之堆
- Can oracle-linux-7.9 support oracle-19c ACFs file system?
- Database hyperphone (II)
- Smart fish tank design based on stm32
- Three table joint query 2
猜你喜欢

SAP UI5 FileUploader 使用的隐藏 iframe 和 form 元素的设计明细

大排量硬核产品来袭,坦克品牌能否冲破自主品牌天花板?

Explain the idempotence of distributed system in detail

Kubernetes第八篇:使用kubernetes部署NFS系统完成数据库持久化(Kubernetes工作实践类)
![[OBS] newsocketloopenable network optimization](/img/ef/ae95f94ccd9389498eebf61ba40508.png)
[OBS] newsocketloopenable network optimization

Today's sleep quality record 82 points

7 岁男孩被 AI 机器人折断手指,仅因下棋太快?

Microsoft silently donated $10000 to curl, which was not notified until half a year later

立创EDA——原理图的布局与检查(三)

动作捕捉系统用于柔性机械臂的末端定位控制
随机推荐
SAP UI5 FileUploader 的本地文件上传技术实现分享
Technical practice dry goods | from workflow to workflow
Redis: configuring AOF does not work
二舅的外甥和他的学生们
New attributes of ES6 array
helm安装kubevela完整Makefile脚本内容
MySQL: Functions
如何通过C#/VB.NET从PDF中提取表格
Kubernetes Part 7: using kubernetes to deploy prometheus+grafana monitoring system (kubernetes work practice class)
MySQL view and stored procedure
Understand the staticarea initialization logic of SAP ui5 application through the initialization of fileuploader
Xcode releases test package testflight
立创EDA——原理图的布局与检查(三)
Lichuang EDA - PCB layout (IV)
格力「不清凉」:巨头诉讼落幕又遭大经销商减持,空调新战场还晚人一步?
ES6 array method and pseudo array to array method
Three table joint query 1
General process of background management system permission setting
WebView basic use
2021-06-18 automatic assembly error in SSM project