Elasticsearch 核心概念与入门指南

  • 时间:2025-11-17 22:13 作者: 来源: 阅读:1
  • 扫一扫,手机访问
摘要:1. 什么是 Elasticsearch?Elasticsearch(简称 ES)是一个基于 Lucene 的开源、分布式、实时的搜索与数据分析引擎。它支持海量数据的存储、快速检索、复杂聚合分析,以及全文搜索、结构化搜索和地理空间搜索等能力。ES 使用 RESTful API 接口,支持 JSON 格式数据交互,能够轻松扩展到数百台节点,处理 PB 级数据。2. 核心概念(通俗易懂,类比 MySQ

1. 什么是 Elasticsearch?

Elasticsearch(简称 ES)是一个基于 Lucene 的开源、分布式、实时的搜索与数据分析引擎。它支持海量数据的存储、快速检索、复杂聚合分析,以及全文搜索、结构化搜索和地理空间搜索等能力。ES 使用 RESTful API 接口,支持 JSON 格式数据交互,能够轻松扩展到数百台节点,处理 PB 级数据。


2. 核心概念(通俗易懂,类比 MySQL)

ES 概念

MySQL 类比

说明

索引(Index)

数据库/表

一类文档的集合,类似数据库中的表,名称必须小写。

文档(Document)

行/记录

最小数据单元,以 JSON 格式存储。

字段(Field)

文档中的一个属性,有自己的数据类型。

映射(Mapping)

表结构定义

定义字段类型、是否分词、索引规则等。

分片(Shard)

分区

索引数据被水平切分,分布在不同节点,支持扩展和并行查询。

副本(Replica)

副本/备份

主分片的备份,提高高可用性和查询吞吐量。

节点(Node)

服务器实例

一个 ES 实例,可以存储数据、参与索引和查询。

集群(Cluster)

数据库集群

多个节点组成,共同对外提供服务。

注:Type 类型在 ES 7.x 之后已废弃,6.x 仅支持一个 Type。


3. 入门安装步骤(以 Linux 为例)

3.1 安装 Java 环境

ES 依赖 Java,推荐 JDK 1.8+:

sudo yum install java-1.8.0-openjdk -y
java -version

3.2 下载并解压 ES

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
cd elasticsearch-7.12.1

3.3 修改配置文件

编辑 config/elasticsearch.yml,修改如下:

cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

3.4 启动 ES

./bin/elasticsearch -d

3.5 验证安装

浏览器访问 http://localhost:9200,返回 JSON 信息即成功。


4. 倒排索引(Inverted Index)——ES 搜索的核心

4.1 什么是倒排索引?

倒排索引是 ES 实现高效全文检索的核心数据结构。它将“文档 → 词”的正向关系,转换为“词 → 文档”的倒排关系,从而极大提升搜索效率。

4.2 工作原理

  1. 分词:将文档内容按必定规则拆分为词(Term)。
  2. 构建索引:为每个词记录包含它的文档列表(Posting List)。
  3. 查询:根据查询词,直接从索引中找出对应文档,无需全文扫描。

4.3 示例

假设有文档:

  • Doc1:“Elasticsearch 是搜索引擎”
  • Doc2:“Elasticsearch 使用倒排索引”

倒排索引结构如下:

文档列表

Elasticsearch

Doc1, Doc2

Doc1

搜索引擎

Doc1

使用

Doc2

倒排索引

Doc2

搜索“倒排索引”时,直接定位到 Doc2,无需遍历所有文档。



5. 基本操作示例(使用 RESTful API)

5.1 创建索引(并定义映射)

PUT /products
{
  "mappings": {
    "properties": {
      "title":    { "type": "text" },
      "price":    { "type": "double" },
      "created_at": { "type": "date" }
    }
  }
}

5.2 插入文档

POST /products/_doc/1
{
  "title": "iPhone 13",
  "price": 7999,
  "created_at": "2021-09-15"
}

5.3 查询文档

GET /products/_doc/1

5.4 全文搜索

GET /products/_search
{
  "query": {
    "match": { "title": "iPhone" }
  }
}

5.5 删除文档/索引

DELETE /products/_doc/1
DELETE /products

6. 常见应用场景

  • 网站商品搜索、全文检索
  • 日志分析与监控(ELK/EFK)
  • 数据聚合与 BI 分析
  • 地理位置搜索
  • 推荐系统、数据挖掘等

7. 总结

Elasticsearch 是一个强劲、易用的分布式搜索引擎,通过倒排索引实现毫秒级搜索响应。掌握索引、文档、映射、分片等核心概念,以及基本的 RESTful API 操作,即可快速入门。结合 Kibana 可视化工具,能更高效地进行数据分析与运维管理。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】小学英语高频常用词汇,下载了好好练习一下,看看能对多少?(2025-11-18 00:31)
【系统环境|】【陕西】吴清西:说解《说文解字》中的渭南方言词语(三)(2025-11-18 00:31)
【系统环境|】2.4寸IPS :ILI9341带触摸高清240*320(2025-11-18 00:30)
【系统环境|】技术 | 多线并接应该如何测拉力?(2025-11-18 00:30)
【系统环境|】​华与华兄弟:卖符号和词语二十年(2025-11-18 00:29)
【系统环境|】手把手教你搭建 Kafka 集群,一文就够了!(2025-11-18 00:29)
【系统环境|】Kafka集群最全详解(图文全面总结)(2025-11-18 00:28)
【系统环境|】Linux 9 自动化部署 Kafka 集群(2025-11-18 00:28)
【系统环境|】DeepSeek 生成的数学公式如何完美转换成 Word?3 步搞定转 Word 格式(2025-11-18 00:27)
【系统环境|】Office中的公式如何编辑才完美(2025-11-18 00:27)
手机二维码手机访问领取大礼包
返回顶部