这里主要是使用命令对elasticsearch进行管理,不需要借助其他客户端工具
环境说明:
ES服务端:192.168.2.100 端口9200
# 查看索引的状态
curl -XGET http://192.168.2.100:9200/_cat/indices?v
# 关闭索引
curl -X POST http://192.168.2.100:9200/[索引名]/_close?pretty
# 打开索引
curl -X POST http://192.168.2.100:9200/[索引名]/_open?pretty
# 查看ES健康状态
curl -XGET http://192.168.2.100:9200/_cat/health?v
# 查看ES 节点
curl -XGET http://192.168.2.100:9200/_cat/nodes?v
# 查看所有索引的分片情况
curl -XGET http://192.168.2.100:9200/_cat/shards?v
# 查看指定索引的分配情况
curl -XGET http://192.168.2.100:9200/_cat/shards/[索引名]?v
# 查看正在执行的任务
curl -XGET http://192.168.2.100:9200/_cat/tasks?v
# 查看安装的插件
curl -XGET http://192.168.2.100:9200/_cat/plugins?v
-------------------------------------------------------
/_cat/allocation #查看单节点的shard分配整体情况
/_cat/shards #查看各shard的详细情况
/_cat/shards/{index} #查看指定分片的详细情况
/_cat/master #查看master节点信息
/_cat/nodes #查看所有节点信息
/_cat/indices #查看集群中所有index的详细信息
/_cat/indices/{index} #查看集群中指定index的详细信息
/_cat/segments #查看各index的segment详细信息,包括segment名, 所属shard, 内存(磁盘)占用大小, 是否刷盘
/_cat/segments/{index}#查看指定index的segment详细信息
/_cat/count #查看当前集群的doc数量
/_cat/count/{index} #查看指定索引的doc数量
/_cat/recovery #查看集群内每个shard的recovery过程.调整replica。
/_cat/recovery/{index}#查看指定索引shard的recovery过程
/_cat/health #查看集群当前状态:红、黄、绿
/_cat/pending_tasks #查看当前集群的pending task
/_cat/aliases #查看集群中所有alias信息,路由配置等
/_cat/aliases/{alias} #查看指定索引的alias信息
/_cat/thread_pool #查看集群各节点内部不同类型的threadpool的统计信息,
/_cat/plugins #查看集群各个节点上的plugin信息
/_cat/fielddata #查看当前集群各个节点的fielddata内存使用情况
/_cat/fielddata/{fields} #查看指定field的内存使用情况,里面传field属性对应的值
/_cat/nodeattrs #查看单节点的自定义属性
/_cat/repositories #输出集群中注册快照存储库
/_cat/templates #输出当前正在存在的模板信息
----------------------------------------------------------
#直接创建索引,不指定mapping
curl -XPUT '192.168.2.100:9200/{index}'
例:
curl -XPUT '192.168.2.100:9200/customer'
#设定mapping信息创建索引
curl -XPUT '192.168.2.100:9200/{index}' -d '{}'
例:
curl -XPUT '192.168.2.100:9200/customer' -d '
{
"mappings": {
"external": {
"properties": {
"name": {
"type": "keyword"
}
}
}
}
}'
# 插入数据
curl -XPUT '192.168.2.100:9200/{index}/{type}/{id}?pretty' -d '{}'
#在customer索引下类型为external,插入id为1的数据,数据体必须为json格式
curl -XPUT '192.168.2.100:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
# 查询数据
curl -XGET '192.168.2.100:9200/{index}/{type}/{id}?pretty'
#获取customer索引下类型为external,id为1的数据,pretty参数表示返回结果格式美观
curl -XGET '192.168.2.100:9200/customer/external/1?pretty'
# 修改数据 完全覆盖
curl -XPUT '192.168.2.100:9200/{index}/{type}/{id}?pretty' -d'{}'
#在customer索引下类型为external,插入id为1的数据,数据体必须为json格式,相同id的数据会被覆盖
curl -XPUT '192.168.2.100:9200/customer/external/1?pretty' -d'
{
"name": "John Doe xxxxxxx"
}'
# 更新数据 更新指定字段,其他字段不受影响
#只更新name字段的信息
curl -XPOST '192.168.2.100:9200/customer/external/1/_update?pretty' -d'
{
"doc": {
"name": "Jane Doe"
}
}'
#更新name字段的信息,同时还新增了age字段
curl -XPOST '192.168.2.100:9200/customer/external/1/_update?pretty' -d '
{
"doc": {
"name": "Jane Doe",
"age": 20
}
}'
#使用脚本方式进行更新,age自增5
curl -XPOST '192.168.2.100:9200/customer/external/1/_update?pretty' -d'
{
"script": "ctx._source.age += 5"
}'
# 删除数据
#删除customer索引下类型为external的ID为2的数据
curl -XDELETE '192.168.2.100:9200/customer/external/2?pretty'
# 删除索引
curl -XDELETE '192.168.2.100:9200/customer'