目录
一、Elasticsearch简介
二、环境快速搭建
1. 单节点本地部署(Docker版)
2. 验证安装
三、核心概念图解
与传统数据库对比
架构概念说明
四、REST API基础操作
1. 索引管理
2. 文档CRUD操作
五、基础搜索实战
1. 全文搜索
2. 精确匹配
3. 范围查询
4. 组合查询
六、常用辅助工具
1. Kibana Dev Tools
2. Cerebro集群管理工具
七、新手常见问题
1. 索引创建失败
2. 字段类型不匹配
八、下一步学习建议
一、Elasticsearch简介
Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它能实现:
-
实时数据搜索
-
复杂数据分析
-
海量数据存储(PB级)
核心特性:
-
分布式架构
-
RESTful API
-
近实时搜索(NRT)
-
多租户支持
二、环境快速搭建
1. 单节点本地部署(Docker版)
# 拉取镜像(以8.9.0版本为例)
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.0# 启动容器(开发模式)
docker run -d --name es-node01 \-p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \elasticsearch:8.9.0
2. 验证安装
访问 http://localhost:9200
看到如下响应说明成功:
{"name" : "es-node01","cluster_name" : "docker-cluster","version" : {"number" : "8.9.0","build_flavor" : "default"},"tagline" : "You Know, for Search"
}
三、核心概念图解
与传统数据库对比
SQL术语 | Elasticsearch术语 |
---|---|
Database | Index |
Table | Type(已废弃) |
Row | Document |
Column | Field |
Schema | Mapping |
架构概念说明
-
Node:运行ES实例的服务器
-
Cluster:多个节点的集合
-
Shard:索引的分片(默认主分片数:1)
-
Replica:分片的副本(默认副本数:1)
四、REST API基础操作
1. 索引管理
创建索引(包含自定义mapping):
PUT /books
{"settings": {"number_of_shards": 1,"number_of_replicas": 1},"mappings": {"properties": {"title": { "type": "text" },"author": { "type": "keyword" },"price": { "type": "double" },"publish_date": { "type": "date" }}}
}
查看索引信息:
GET /books/_settings
GET /books/_mapping
2. 文档CRUD操作
插入文档:
POST /books/_doc/1
{"title": "Elasticsearch权威指南","author": "Clinton Gormley","price": 89.90,"publish_date": "2015-01-01"
}
查询文档:
GET /books/_doc/1
更新文档:
POST /books/_update/1
{"doc": {"price": 79.90}
}
删除文档:
DELETE /books/_doc/1
五、基础搜索实战
1. 全文搜索
GET /books/_search
{"query": {"match": {"title": "权威指南"}}
}
2. 精确匹配
GET /books/_search
{"query": {"term": {"author.keyword": "Clinton Gormley"}}
}
3. 范围查询
GET /books/_search
{"query": {"range": {"price": {"gte": 50,"lte": 100}}}
}
4. 组合查询
GET /books/_search
{"query": {"bool": {"must": [{ "match": { "title": "指南" } }],"filter": [{ "range": { "price": { "lte": 100 } } }]}}
}
六、常用辅助工具
1. Kibana Dev Tools
提供可视化交互界面,内置控制台可直接执行ES查询:
2. Cerebro集群管理工具
实时查看集群状态
执行索引管理操作
节点监控
七、新手常见问题
1. 索引创建失败
错误现象:
{"error": {"root_cause": [{"type": "resource_already_exists_exception","reason": "index [books/xxxx] already exists"}]}
}
解决方案:
-
删除已有索引:
DELETE /books
-
修改索引名称重新创建
2. 字段类型不匹配
错误示例:
{"error": {"root_cause": [{"type": "mapper_parsing_exception","reason": "failed to parse field [price] of type [double]"}]}
}
预防措施:
-
提前定义好mapping
-
使用
ignore_malformed
参数忽略格式错误
八、下一步学习建议
-
掌握Analyzer分词原理
-
学习聚合(Aggregation)分析
-
了解索引生命周期管理(ILM)
-
探索Elastic Stack生态(Logstash、Beats)
资源推荐:
-
官方入门教程
-
Elastic中文社区
-
《Elasticsearch实战》