Elasticsearch

目录

[1. 什么是 Elasticsearch?](#1. 什么是 Elasticsearch?)

[2. 与关系型数据库的对比](#2. 与关系型数据库的对比)

[3. 倒排索引](#3. 倒排索引)

[4. 为什么倒排索引如此高效?](#4. 为什么倒排索引如此高效?)


1. 什么是 Elasticsearch?

Elasticsearch 是一个开源的、分布式的、基于 RESTful API 的搜索和分析引擎。它建立在 Apache Lucene 搜索引擎库之上,提供了全文搜索、结构化搜索、分析以及三者结合的能力。

核心特点:

  • 分布式和高可用性: 数据被分片并分布在多个节点上,支持故障转移和扩展。

  • 近实时搜索: 数据从被索引到可搜索只有轻微的延迟(通常为 1 秒)。

  • RESTful API: 使用标准的 HTTP 方法(GET, POST, PUT, DELETE)进行所有操作,交互非常简单。

  • 面向文档: 存储的是复杂的结构化数据,序列化为 JSON 格式。

  • 模式自由(Schema-less): 无需预先定义数据结构(Schema),可以自动推断数据类型。但也支持明确定义模式以优化性能。

2. 与关系型数据库的对比

特性 Elasticsearch 关系型数据库(如 MySQL)
目的 搜索和分析 事务性数据存储(ACID)
数据模型 面向文档(JSON) 基于表和行
查询语言 RESTful API / Query DSL SQL
事务性 弱(非核心设计目标) 强(ACID)
扩展性 水平扩展(分布式) 通常垂直扩展,水平扩展较复杂
一致性 最终一致性(近实时) 强一致性

3. 倒排索引

正排索引 就是直接记录每个文档包含了什么内容。它的结构是 "文档 -> 内容"。

倒排索引 则完全颠倒了这个关系。它记录的是 "单词 -> 出现在哪些文档中"。

它主要包含两部分:

  1. 词项字典: 一个包含所有不重复单词(经过分词处理)的列表,也称为"词项"。

  2. 倒排列表: 对于每个词项,记录它出现在哪些文档中,以及出现的频率、位置等信息。

倒排索引 是一种将内容中的词项映射到包含它的文档 的数据结构。这种"从关键词到文档"的逆向思维,是 Elasticsearch 实现毫秒级全文搜索的基石。

4. 为什么倒排索引如此高效?

  1. 预先计算: 搜索所需的结果(词项 -> 文档的映射关系)在索引阶段就已经计算好并存储了下来。搜索时几乎是直接"查表",避免了实时遍历大量数据。

  2. 易于压缩: 倒排列表中的文档 ID 列表通常是排序好的数字,可以使用高效的压缩算法(如帧间隔编码)来减少磁盘占用和内存消耗。

  3. 适合缓存: 常用的搜索词项及其对应的倒排列表可以缓存在内存中,使得高频搜索的速度极快。

相关推荐
SelectDB技术团队27 分钟前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天39 分钟前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
幂律智能1 小时前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan2 小时前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据
哲霖软件2 小时前
非标机械设备公司怎么做信息化?破解通用ERP水土不服难题
大数据·运维
IT毕设梦工厂2 小时前
计算机毕业设计选题推荐:基于大数据的杭州亚运会社交媒体互动数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·课程设计·数据分析数据可视化
Leo.yuan3 小时前
2026中国数据处理平台行业研究:实时、质量与一体化能力成为竞争重点
大数据
Leo.yuan3 小时前
企业可信Data Agent怎么建:可信分析智能体(Traceable Analytic Agent)的分析链路与验证机制
大数据·人工智能·机器学习
QY_Research_3 小时前
2026-2032年个人安全警报装置市场分析 CAGR4.7% 产业全景报告
大数据·人工智能·安全
AI行业说3 小时前
针织 T 恤、运动套装电脑模板机选型与落地指南
大数据·人工智能·机器人·自动化·智能模板机