elasticsearch

Elasticsearch 索引管理、查询 DSL、集群运维等技能。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "elasticsearch" with this command: npx skills add chaterm/terminal-skills/chaterm-terminal-skills-elasticsearch

Elasticsearch 集群管理

概述

Elasticsearch 索引管理、查询 DSL、集群运维等技能。

集群管理

集群状态

集群健康

curl -X GET "localhost:9200/_cluster/health?pretty"

集群状态

curl -X GET "localhost:9200/_cluster/state?pretty"

集群统计

curl -X GET "localhost:9200/_cluster/stats?pretty"

节点信息

curl -X GET "localhost:9200/_nodes?pretty" curl -X GET "localhost:9200/_nodes/stats?pretty"

分片分配

curl -X GET "localhost:9200/_cat/shards?v" curl -X GET "localhost:9200/_cat/allocation?v"

Cat API

常用 cat 命令

curl -X GET "localhost:9200/_cat/health?v" curl -X GET "localhost:9200/_cat/nodes?v" curl -X GET "localhost:9200/_cat/indices?v" curl -X GET "localhost:9200/_cat/shards?v" curl -X GET "localhost:9200/_cat/segments?v" curl -X GET "localhost:9200/_cat/count?v" curl -X GET "localhost:9200/_cat/recovery?v" curl -X GET "localhost:9200/_cat/thread_pool?v"

索引管理

索引操作

创建索引

curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d' { "settings": { "number_of_shards": 3, "number_of_replicas": 1 }, "mappings": { "properties": { "title": { "type": "text" }, "content": { "type": "text" }, "timestamp": { "type": "date" }, "status": { "type": "keyword" } } } }'

删除索引

curl -X DELETE "localhost:9200/my_index"

查看索引

curl -X GET "localhost:9200/my_index?pretty" curl -X GET "localhost:9200/my_index/_mapping?pretty" curl -X GET "localhost:9200/my_index/_settings?pretty"

索引别名

curl -X POST "localhost:9200/_aliases" -H 'Content-Type: application/json' -d' { "actions": [ { "add": { "index": "my_index_v2", "alias": "my_index" } }, { "remove": { "index": "my_index_v1", "alias": "my_index" } } ] }'

索引设置

修改设置

curl -X PUT "localhost:9200/my_index/_settings" -H 'Content-Type: application/json' -d' { "index": { "number_of_replicas": 2 } }'

关闭/打开索引

curl -X POST "localhost:9200/my_index/_close" curl -X POST "localhost:9200/my_index/_open"

刷新索引

curl -X POST "localhost:9200/my_index/_refresh"

强制合并

curl -X POST "localhost:9200/my_index/_forcemerge?max_num_segments=1"

文档操作

CRUD

创建文档

curl -X POST "localhost:9200/my_index/_doc" -H 'Content-Type: application/json' -d' { "title": "Hello World", "content": "This is a test document", "timestamp": "2024-01-15T10:00:00" }'

指定 ID 创建

curl -X PUT "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d' { "title": "Document 1" }'

获取文档

curl -X GET "localhost:9200/my_index/_doc/1?pretty"

更新文档

curl -X POST "localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d' { "doc": { "title": "Updated Title" } }'

删除文档

curl -X DELETE "localhost:9200/my_index/_doc/1"

批量操作

curl -X POST "localhost:9200/_bulk" -H 'Content-Type: application/json' -d' {"index":{"_index":"my_index","_id":"1"}} {"title":"Doc 1"} {"index":{"_index":"my_index","_id":"2"}} {"title":"Doc 2"} '

查询 DSL

基础查询

匹配所有

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } }'

全文搜索

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "match": { "content": "search text" } } }'

精确匹配

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "term": { "status": "published" } } }'

范围查询

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "range": { "timestamp": { "gte": "2024-01-01", "lte": "2024-01-31" } } } }'

复合查询

Bool 查询

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "bool": { "must": [ { "match": { "title": "elasticsearch" } } ], "filter": [ { "term": { "status": "published" } }, { "range": { "timestamp": { "gte": "2024-01-01" } } } ], "should": [ { "match": { "content": "tutorial" } } ], "must_not": [ { "term": { "status": "draft" } } ] } } }'

聚合查询

聚合

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d' { "size": 0, "aggs": { "status_count": { "terms": { "field": "status" } }, "avg_score": { "avg": { "field": "score" } }, "date_histogram": { "date_histogram": { "field": "timestamp", "calendar_interval": "day" } } } }'

备份与恢复

注册快照仓库

curl -X PUT "localhost:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d' { "type": "fs", "settings": { "location": "/backup/elasticsearch" } }'

创建快照

curl -X PUT "localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true"

查看快照

curl -X GET "localhost:9200/_snapshot/my_backup/_all?pretty"

恢复快照

curl -X POST "localhost:9200/_snapshot/my_backup/snapshot_1/restore" -H 'Content-Type: application/json' -d' { "indices": "my_index", "rename_pattern": "(.+)", "rename_replacement": "restored$1" }'

删除快照

curl -X DELETE "localhost:9200/_snapshot/my_backup/snapshot_1"

常见场景

场景 1:重建索引

Reindex

curl -X POST "localhost:9200/_reindex" -H 'Content-Type: application/json' -d' { "source": { "index": "old_index" }, "dest": { "index": "new_index" } }'

带查询条件

curl -X POST "localhost:9200/_reindex" -H 'Content-Type: application/json' -d' { "source": { "index": "old_index", "query": { "term": { "status": "active" } } }, "dest": { "index": "new_index" } }'

场景 2:分片迁移

排除节点

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient": { "cluster.routing.allocation.exclude._name": "node_to_remove" } }'

取消排除

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient": { "cluster.routing.allocation.exclude._name": null } }'

场景 3:性能优化

禁用刷新(批量导入时)

curl -X PUT "localhost:9200/my_index/_settings" -H 'Content-Type: application/json' -d' { "index": { "refresh_interval": "-1" } }'

恢复刷新

curl -X PUT "localhost:9200/my_index/_settings" -H 'Content-Type: application/json' -d' { "index": { "refresh_interval": "1s" } }'

故障排查

问题 排查方法

集群 RED _cluster/health , _cat/shards

分片未分配 _cluster/allocation/explain

查询慢 _nodes/hot_threads , Profile API

磁盘满 _cat/allocation , 清理旧索引

内存不足 _nodes/stats , 调整 JVM

分片未分配原因

curl -X GET "localhost:9200/_cluster/allocation/explain?pretty"

热点线程

curl -X GET "localhost:9200/_nodes/hot_threads"

任务列表

curl -X GET "localhost:9200/_tasks?detailed=true&actions=*search"

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

cron

No summary provided by upstream source.

Repository SourceNeeds Review
General

system-admin

No summary provided by upstream source.

Repository SourceNeeds Review
General

systemd

No summary provided by upstream source.

Repository SourceNeeds Review
General

vpn

No summary provided by upstream source.

Repository SourceNeeds Review