您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# ElasticSearch简介及使用指引
## 一、ElasticSearch概述
### 1.1 什么是ElasticSearch
ElasticSearch(简称ES)是一个基于**Lucene库**构建的开源分布式搜索引擎,采用Java语言开发,提供近实时(NRT)的全文搜索能力。作为**ELK技术栈**的核心组件(ElasticSearch+Logstash+Kibana),它能够:
- 实现PB级数据的快速检索
- 支持结构化/非结构化数据存储
- 提供丰富的RESTful API接口
- 具备水平扩展和高可用特性
### 1.2 核心特性
| 特性 | 说明 |
|-------|-------|
| 分布式架构 | 自动分片数据,支持水平扩展 |
| 近实时搜索 | 数据写入后1秒内可检索 |
| RESTful API | 所有操作通过HTTP接口完成 |
| 多语言支持 | 官方提供Java/Python/.NET等客户端 |
| 聚合分析 | 支持复杂的统计分析功能 |
### 1.3 典型应用场景
1. **企业级搜索**:电商商品搜索、内容管理系统
2. **日志分析**:结合Logstash实现日志收集分析
3. **数据分析**:用户行为分析、业务指标统计
4. **安全监控**:异常行为检测、SIEM系统
## 二、核心概念解析
### 2.1 基本术语
- **索引(Index)**:类似数据库中的"库"概念
- **类型(Type)**:7.x版本后已废弃,现单索引单类型
- **文档(Document)**:数据存储的基本单元(JSON格式)
- **字段(Field)**:文档的属性字段
- **映射(Mapping)**:定义字段的数据类型
### 2.2 分片与副本
```mermaid
graph TD
A[索引] --> B[主分片]
A --> C[副本分片]
B --> D[物理存储在节点1]
C --> E[物理存储在节点2]
传统数据库与ES的查询方式对比:
# 传统数据库(正向索引)
文档ID -> 内容
1 -> "苹果手机"
2 -> "华为手机"
# ES倒排索引
关键词 -> 文档ID
"苹果" -> [1]
"手机" -> [1,2]
"华为" -> [2]
docker run -d --name es01 \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:8.9.0
elasticsearch.yml
关键配置:
cluster.name: production
node.name: node-1
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11"]
cluster.initial_master_nodes: ["node-1", "node-2"]
// 创建索引
PUT /products
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": { "type": "text" },
"price": { "type": "double" }
}
}
}
# 插入文档
POST /products/_doc/1
{
"name": "iPhone 15",
"price": 7999
}
# 查询文档
GET /products/_doc/1
# 更新文档
POST /products/_update/1
{
"doc": { "price": 7499 }
}
基础匹配查询:
GET /products/_search
{
"query": {
"match": {
"name": "iPhone"
}
}
}
复合布尔查询:
{
"query": {
"bool": {
"must": [
{ "match": { "name": "手机" } }
],
"filter": [
{ "range": { "price": { "gte": 5000 } } }
]
}
}
}
GET /orders/_search
{
"aggs": {
"price_stats": {
"stats": { "field": "amount" }
},
"category_terms": {
"terms": { "field": "category.keyword" }
}
}
}
synonyms.txt
配置示例:
手机,智能手机,mobile
苹果,Apple,iphone
索引设计:
查询优化:
硬件配置:
_profile
API分析慢查询?refresh=wait_for
preference=_primary
数据建模原则:
监控指标:
版本升级路径:
7.x → 7.17 → 8.0 → 8.9
注:本文基于ElasticSearch 8.x版本编写,部分语法在早期版本可能不兼容。实际生产部署建议参考官方最新文档。 “`
这篇文章通过Markdown格式系统性地介绍了ElasticSearch的核心概念、安装配置、基础操作和高级功能,包含代码示例、图表和表格等多种呈现形式,总字数约2050字。可根据实际需要调整各部分内容的深度和细节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。