Elasticsearch 常用操作命令整合 (cURL 版本)
集群管理
查看集群健康状态
curl -X GET "localhost:9200/_cluster/health?pretty"
查看节点信息
curl -X GET "localhost:9200/_cat/nodes?v"
查看集群统计信息
curl -X GET "localhost:9200/_cluster/stats?human&pretty"
索引操作
创建索引
curl -X PUT "localhost:9200/index_name" -H 'Content-Type: application/json' -d'
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"field1": { "type": "text" },
"field2": { "type": "keyword" }
}
}
}
'
查看所有索引
curl -X GET "localhost:9200/_cat/indices?v"
查看特定索引信息
curl -X GET "localhost:9200/index_name?pretty"
删除索引
curl -X DELETE "localhost:9200/index_name"
关闭/打开索引
curl -X POST "localhost:9200/index_name/_close"
curl -X POST "localhost:9200/index_name/_open"
文档操作
索引/创建文档
curl -X POST "localhost:9200/index_name/_doc" -H 'Content-Type: application/json' -d'
{
"field1": "value1",
"field2": "value2"
}
'
curl -X PUT "localhost:9200/index_name/_doc/1" -H 'Content-Type: application/json' -d'
{
"field1": "value1",
"field2": "value2"
}
'
获取文档
curl -X GET "localhost:9200/index_name/_doc/1?pretty"
更新文档
curl -X POST "localhost:9200/index_name/_update/1" -H 'Content-Type: application/json' -d'
{
"doc": {
"field1": "new_value"
}
}
'
删除文档
curl -X DELETE "localhost:9200/index_name/_doc/1"
批量操作
curl -X POST "localhost:9200/_bulk" -H 'Content-Type: application/json' -d'
{ "index" : { "_index" : "index_name", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "index_name", "_id" : "2" } }
{ "create" : { "_index" : "index_name", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "index_name"} }
{ "doc" : {"field2" : "value2"} }
'
搜索操作
简单搜索
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"field1": "search_term"
}
}
}
'
复合查询
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" } },
{ "range": { "field2": { "gte": 10 } } }
]
}
}
}
'
聚合查询
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
"aggs": {
"agg_name": {
"terms": { "field": "field2" }
}
}
}
'
索引别名
创建别名
curl -X POST "localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
{
"actions": [
{
"add": {
"index": "index_name",
"alias": "alias_name"
}
}
]
}
'
切换别名
curl -X POST "localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
{
"actions": [
{ "remove": { "index": "old_index", "alias": "alias_name" } },
{ "add": { "index": "new_index", "alias": "alias_name" } }
]
}
'
索引模板
创建索引模板
curl -X PUT "localhost:9200/_template/template_name" -H 'Content-Type: application/json' -d'
{
"index_patterns": ["pattern*"],
"settings": {
"number_of_shards": 1
},
"mappings": {
"properties": {
"field1": { "type": "text" }
}
}
}
'
数据迁移
使用_reindex API
curl -X POST "localhost:9200/_reindex" -H 'Content-Type: application/json' -d'
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
'
常用_cat API
查看分片分配
curl -X GET "localhost:9200/_cat/shards?v"
查看任务
curl -X GET "localhost:9200/_cat/tasks?v"
查看插件
curl -X GET "localhost:9200/_cat/plugins?v"
查看线程池
curl -X GET "localhost:9200/_cat/thread_pool?v"
认证相关 (如果启用了安全功能)
带基本认证的请求
curl -u username:password -X GET "localhost:9200/_cluster/health?pretty"
带API密钥的请求
curl -H "Authorization: ApiKey your_api_key" -X GET "localhost:9200/_cluster/health?pretty"
注意:
- 默认使用localhost:9200,如果ES运行在其他主机或端口,请相应修改
- 如果启用了安全功能,需要添加认证信息
- 对于生产环境,建议使用HTTPS协议