一、Elasticsearch 简介:为什么它成为大数据时代的“搜索之王”?
在大数据时代,数据的高效检索和分析成为企业核心诉求之一。Elasticsearch(简称 ES)作为一款基于 Lucene的分布式搜索和分析引擎,凭借其近实时搜索、水平扩展能力和强大的聚合分析功能,迅速成为日志分析、全文检索、监控系统等场景的首选工具。
1.1 Elasticsearch 的核心特性
- 分布式架构:天然支持横向扩展,轻松应对 PB 级数据。
- 全文检索:基于倒排索引技术,支持模糊查询、高亮显示等高级功能。
- RESTful API:所有操作通过 HTTP 接口完成,语言无关性极强。
- 多类型数据分析:支持结构化、非结构化数据,甚至地理位置数据的处理。
1.2 典型应用场景
- 日志分析与监控:结合 ELK 技术栈(Elasticsearch + Logstash + Kibana)。
- 电商搜索:商品多维度检索(如价格、品牌、关键词)。
- 实时数据分析:用户行为分析、广告点击率统计等。
二、快速入门:安装与基础配置
2.1 安装 Elasticsearch
以 Docker 方式快速启动一个单节点集群:
```bash
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.7
```
验证安装成功:
```bash
curl http://localhost:9200
```
2.2 Kibana:可视化操作利器
Kibana 提供 Dev Tools 工具,便于执行 ES 指令:
```bash
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.17.7
```
三、索引库操作:数据管理的基石
3.1 创建索引库
索引(Index)相当于传统数据库中的“数据库”。以下命令创建一个名为 `products` 的索引,包含分片和副本配置:
```json
PUT /products
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": { "type": "text", "analyzer": "ik_max_word" },
"price": { "type": "double" },
"category": { "type": "keyword" },
"create_time": { "type": "date" }
}
}
}
```
- 分片(Shard):数据水平拆分的单元,提升并发处理能力。
- 副本(Replica):分片的备份,保障高可用性。
3.2 查询与删除索引库
```bash
GET /products # 查看索引信息
DELETE /products # 删除索引
```