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

古茗科技面试:为什么 ElasticSearch 更适合复杂条件搜索?

文章目录

  • ElasticSearch 简介
  • 倒排索引
  • 联合索引查询
    • 跳表合并策略
    • Bitset 合并策略

MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤。

上述这种处理复杂条件查询的方式因为只能通过一个索引进行过滤,所以需要进行大量的 I/O 操作来读取行数据,并消耗 CPU 进行内存过滤,导致查询性能的下降。

而 ElasticSearch 因其特性,十分适合进行复杂条件查询,是业界主流的复杂条件查询场景解决方案,广泛应用于订单和日志查询等场景。

ElasticSearch 简介

Elasticsearch 是开源的实时分布式搜索分析引擎,内部使用 Lucene 做索引与搜索。它提供"准实时搜索"能力,并且能动态集群规模,弹性扩容。

Elasticsearch 使用 Lucene 作为其全文搜索引擎,用于处理纯文本的数据,但 Lucene 只是一个库,提供建立索引、执行搜索等接口,但不包含分布式服务,这些正是 Elasticsearch 做的。

下面,我们来介绍一下 ElasticSearch 的相关概念。为了便于初学者理解,我们先将 ElasticSearch 中的概念和 MySQL 中的概念大致地进行对应。


http://www.kler.cn/a/3370.html

相关文章:

  • easyexcel读取写入excel easyexceldemo
  • R语言学习笔记之开发环境配置
  • 99.12 金融难点通俗解释:毛利率
  • 算法随笔_18: 划分字母区间
  • IPhone16 Pro 设备详情
  • 【玩转全栈】----Django基本配置和介绍
  • mysql数据库介绍
  • 基类与派生类对象的关系 派生类的构造函数
  • 【回忆杀】2012年拥有第一台电脑【致逝去的青春】
  • 【MySQL】数据库的约束
  • 中科亿海微FPGA应用(一、点灯)
  • Python | 蓝桥杯进阶第五卷——数论
  • 计算机组成原理|第四章(笔记)
  • 【C语言】动态内存分配malloc,realloc等函数使用和常见错误
  • 【C++】stack|queue|deque(适配器模式)
  • 一个看起来非常科幻的人脸识别接口与其实现逻辑,用于二次开发
  • 【算法】回溯法详解
  • 2023年区块链面试宝典整理版(一)
  • 【算法】生成分布式 ID 的雪花算法
  • WinForm | C# 界面弹出消息通知栏 (仿Win10系统通知栏)
  • 什么是Python3网络爬虫?
  • Nginx是什么,是干嘛的
  • 内存泄漏 定位方法
  • 老杜MySQL入门基础 第二天
  • 【22年蓝桥杯】十三届蓝桥杯真题JavaB组解析+代码(带你复习知识点)(一)
  • 【LeetCode】消失的数字