Elasticsearch 常用操作命令整合 (cURL 版本)

Elasticsearch 常用操作命令整合 (cURL 版本)

集群管理

查看集群健康状态

bash 复制代码
curl -X GET "localhost:9200/_cluster/health?pretty"

查看节点信息

bash 复制代码
curl -X GET "localhost:9200/_cat/nodes?v"

查看集群统计信息

bash 复制代码
curl -X GET "localhost:9200/_cluster/stats?human&pretty"

索引操作

创建索引

bash 复制代码
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" }
    }
  }
}
'

查看所有索引

bash 复制代码
curl -X GET "localhost:9200/_cat/indices?v"

查看特定索引信息

bash 复制代码
curl -X GET "localhost:9200/index_name?pretty"

删除索引

bash 复制代码
curl -X DELETE "localhost:9200/index_name"

关闭/打开索引

bash 复制代码
curl -X POST "localhost:9200/index_name/_close"
curl -X POST "localhost:9200/index_name/_open"

文档操作

索引/创建文档

bash 复制代码
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"
}
'

获取文档

bash 复制代码
curl -X GET "localhost:9200/index_name/_doc/1?pretty"

更新文档

bash 复制代码
curl -X POST "localhost:9200/index_name/_update/1" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "field1": "new_value"
  }
}
'

删除文档

bash 复制代码
curl -X DELETE "localhost:9200/index_name/_doc/1"

批量操作

bash 复制代码
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"} }
'

搜索操作

简单搜索

bash 复制代码
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "field1": "search_term"
    }
  }
}
'

复合查询

bash 复制代码
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "must": [
        { "match": { "field1": "value1" } },
        { "range": { "field2": { "gte": 10 } } }
      ]
    }
  }
}
'

聚合查询

bash 复制代码
curl -X GET "localhost:9200/index_name/_search" -H 'Content-Type: application/json' -d'
{
  "aggs": {
    "agg_name": {
      "terms": { "field": "field2" }
    }
  }
}
'

索引别名

创建别名

bash 复制代码
curl -X POST "localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
{
  "actions": [
    {
      "add": {
        "index": "index_name",
        "alias": "alias_name"
      }
    }
  ]
}
'

切换别名

bash 复制代码
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" } }
  ]
}
'

索引模板

创建索引模板

bash 复制代码
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

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

常用_cat API

查看分片分配

bash 复制代码
curl -X GET "localhost:9200/_cat/shards?v"

查看任务

bash 复制代码
curl -X GET "localhost:9200/_cat/tasks?v"

查看插件

bash 复制代码
curl -X GET "localhost:9200/_cat/plugins?v"

查看线程池

bash 复制代码
curl -X GET "localhost:9200/_cat/thread_pool?v"

认证相关 (如果启用了安全功能)

带基本认证的请求

bash 复制代码
curl -u username:password -X GET "localhost:9200/_cluster/health?pretty"

带API密钥的请求

bash 复制代码
curl -H "Authorization: ApiKey your_api_key" -X GET "localhost:9200/_cluster/health?pretty"

注意:

  1. 默认使用localhost:9200,如果ES运行在其他主机或端口,请相应修改
  2. 如果启用了安全功能,需要添加认证信息
  3. 对于生产环境,建议使用HTTPS协议
相关推荐
刘洋浪子14 分钟前
Git命令学习
git·学习·elasticsearch
老蒋新思维38 分钟前
创客匠人 2025 万人峰会核心:AI 驱动知识产品变现革新
大数据·人工智能·网络协议·tcp/ip·创始人ip·创客匠人·知识变现
expect7g38 分钟前
Paimon源码解读 -- FULL_COMPACTION_DELTA_COMMITS
大数据·后端·flink
Stone_OverLooking43 分钟前
Qt6.5.3 mingw64 Ninja编译oracle oci驱动
数据库·qt·oracle
Java爱好狂.1 小时前
如何用JAVA技术设计一个高并发系统?
java·数据库·高并发·架构设计·java面试·java架构师·java八股文
慌糖1 小时前
读书笔记之MySQL的字符集与比较规则小读
数据库
码农很忙1 小时前
从0到1搭建智能分析OBS埋点数据的AI Agent:实战指南
数据库·人工智能
安当加密1 小时前
Oracle数据库透明加密实践:基于TDE架构的安全加固方案
数据库·oracle·架构
织元Zmetaboard1 小时前
什么是态势感知大屏?
网络·数据库
NineData1 小时前
NineData 支持 DB2 迁移到 PolarDB Oracle
数据库·oracle·ninedata·数据库迁移·数据库迁移工具·信创改造·智能数据管理平台