Elasticsearch笔记
发布人:shili8
发布时间:2025-03-04 05:48
阅读次数:0
**Elasticsearch笔记**
###什么是Elasticsearch?
Elasticsearch是一个开源的、分布式的搜索引擎,用于存储和检索大规模数据。它由Elastic Company开发,并且广泛应用于各种领域,如日志分析、监控、推荐系统等。
### Elasticsearch的特点1. **分布式**:Elasticsearch支持分布式部署,可以横向扩展到多台机器上。
2. **高性能**:Elasticsearch使用Lucene作为其核心搜索引擎,能够提供非常高效的检索性能。
3. **可伸缩**:Elasticsearch可以动态地增加或减少节点数,以适应数据量和负载的变化。
4. **易用**:Elasticsearch提供了一个简单易用的API和管理界面,使得开发者能够快速上手。
### Elasticsearch的基本概念1. **索引(Index)**:索引是Elasticsearch中最基本的概念,相当于传统数据库中的表。每个索引都有自己的名称、类型等属性。
2. **文档(Document)**:文档是索引中的一条记录,相当于传统数据库中的行。每个文档都有自己的ID和内容。
3. **字段(Field)**:字段是文档中的一项数据,相当于传统数据库中的列。每个字段都有自己的名称和类型。
### Elasticsearch的基本操作####1. 创建索引
bashcurl -XPOST 'localhost:9200/my_index'
####2. 添加文档
bashcurl -XPOST 'localhost:9200/my_index/_doc' -H 'Content-Type: application/json' -d '{"name": "John", "age":30}'
####3. 查询文档
bashcurl -XGET 'localhost:9200/my_index/_search?q=name:John'
### Elasticsearch的配置和管理####1. 配置索引
json{ "settings": { "index": { "number_of_replicas":2, "number_of_shards":5 } }, "mappings": { "properties": { "name": {"type": "text"}, "age": {"type": "integer"} } } }
####2. 添加索引模板
bashcurl -XPOST 'localhost:9200/_template/my_template' -H 'Content-Type: application/json' -d '{"index_patterns": ["my_index_*"], "settings": {"number_of_replicas":1}}'
### Elasticsearch的安全和访问控制####1. 配置用户和角色
json{ "users": [ { "username": "admin", "password": "password" } ], "roles": [ { "name": "admin", "privileges": ["cluster:monitor/nodes", "indices:monitor/get"] } ] }
####2. 配置访问控制
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "access_control": [ { "role": "admin", "privileges": ["cluster:monitor/nodes", "indices:monitor/get"] } ] }
### Elasticsearch的监控和日志####1. 配置监控
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "monitoring": { "enabled": true, "interval": "10m" } }
####2. 配置日志
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "logging": { "enabled": true, "level": "INFO" } }
### Elasticsearch的扩展和集成####1. 配置扩展插件
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "plugins": [ { "name": "elasticsearch-analysis-ik", "version": "7.10.2" } ] }
####2. 配置集成
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "integrations": [ { "name": "elasticsearch-integration-logstash", "version": "7.10.2" } ] }
### Elasticsearch的最佳实践####1. 使用索引模板
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "mappings": { "properties": { "name": {"type": "text"}, "age": {"type": "integer"} } } }
####2. 使用访问控制
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "access_control": [ { "role": "admin", "privileges": ["cluster:monitor/nodes", "indices:monitor/get"] } ] }
####3. 使用监控和日志
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "monitoring": { "enabled": true, "interval": "10m" } }
####4. 使用扩展插件和集成
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "plugins": [ { "name": "elasticsearch-analysis-ik", "version": "7.10.2" } ], "integrations": [ { "name": "elasticsearch-integration-logstash", "version": "7.10.2" } ] }
### Elasticsearch的常见问题和解决方案####1. 如何配置索引模板?
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "mappings": { "properties": { "name": {"type": "text"}, "age": {"type": "integer"} } } }
####2. 如何配置访问控制?
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "access_control": [ { "role": "admin", "privileges": ["cluster:monitor/nodes", "indices:monitor/get"] } ] }
####3. 如何配置监控和日志?
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "monitoring": { "enabled": true, "interval": "10m" } }
####4. 如何配置扩展插件和集成?
json{ "index_patterns": ["my_index_*"], "settings": { "number_of_replicas":1, "number_of_shards":5 }, "plugins": [ { "name": "elasticsearch-analysis-ik", "version": "7.10.2" } ], "integrations": [ { "name": "elasticsearch-integration-logstash", "version": "7.10.2" } ] }
### Elasticsearch的参考文档####1. Elasticsearch官方文档 Elasticsearch中文文档 Elasticsearch插件大全 />
####4. Elasticsearch集成大全 />
### Elasticsearch的最佳实践和常见问题####1. 使用索引模板
json{ "index_patterns": ["