古茗科技面试:为什么 ElasticSearch 更适合复杂条件搜索?
2023-09-27 14:23:02 时间
MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤。
上述这种处理复杂条件查询的方式因为只能通过一个索引进行过滤,所以需要进行大量的 I/O 操作来读取行数据,并消耗 CPU 进行内存过滤,导致查询性能的下降。
而 ElasticSearch 因其特性,十分适合进行复杂条件查询,是业界主流的复杂条件查询场景解决方案,广泛应用于订单和日志查询等场景。
ElasticSearch 简介
Elasticsearch 是开源的实时分布式搜索分析引擎,内部使用 Lucene 做索引与搜索。它提供"准实时搜索"能力,并且能动态集群规模,弹性扩容。
Elasticsearch 使用 Lucene 作为其全文搜索引擎,用于处理纯文本的数据,但 Lucene 只是一个库,提供建立索引、执行搜索等接口,但不包含分布式服务,这些正是 Elasticsearch 做的。
下面,我们来介绍一下 ElasticSearch 的相关概念。为了便于初学者理解,我们先将 ElasticSearch 中的概念和 MySQL 中的概念大致地进行对应。
相关文章
- 搜索关键词分析——以个人博客网站为例
- Elasticsearch构建商品搜索系统
- elasticsearch最全详细使用教程:搜索详解
- C语言实现二叉搜索树
- 广告搜索推荐系统架构
- elasticsearch搜索类型简单介绍
- 搜索select
- 【ElasticSearch】ES 读数据,写数据与搜索数据的过程
- LeetCode_二叉搜索树_简单_700.二叉搜索树中的搜索
- Elasticsearch教程(10) ES term terms prefix 搜索 聚合查询 详细总结
- PostgreSQL 实践 - 内容社区(如论坛)图式搜索应用
- [LeetCode] 450. Delete Node in a BST 删除二叉搜索树中的节点
- 使用nodejs搜索elasticsearch(DSL)
- ElasticSearch 学习04 - 简单搜索笔记
- Elasticsearch 数据搜索篇·【入门级干货】
- 网页搜索自动补全功能如何实现,Elasticsearch来祝佬“一臂之力”
- python学习之美多商城(十七):商品部分:商品搜索、Elasticsearch搜索引擎(Docker部署及haystack对接)