查看删除
curl -su elastic:qiaoning http://127.0.0.1:9200/_cat/indices
curl:一个命令行工具,用于发送 HTTP 请求。
-s:静默模式,不显示进度信息。
-u elastic:qiaoning:使用 elastic 用户名和密码进行基本身份验证。确保密码安全,不要在公共或不安全的环境中直接使用。
http://127.0.0.1:9200/_cat/indices:请求 Elasticsearch 的 _cat/indices API 来列出所有索引的信息。
输出信息
执行该命令后,你会看到类似以下的信息:
green open my_index 1 0 100 0 100kb 50kb
yellow open another_index 5 1 500 10 1mb 500kb
每一行代表一个索引,包含以下信息:
状态(如 green/yellow/red):指示索引的健康状态。
索引名称:如 my_index。
主分片数量:如 1。
副本分片数量:如 0。
文档数量:如 100。
删除文档数量:如 0。
主分片存储大小:如 100kb。
总存储大小:如 50kb。
## 删除命令
curl -su elastic:qiaoning http://127.0.0.1:9200/_cat/indices |grep gb | awk '{print $3}' |xargs -I{} curl -X DELETE -su elastic:qiaoning http://127.0.0.1:9200/{}
查询集群状态
curl -X GET "http://localhost:9200/_cluster/health?pretty"
检查索引状态
curl -X GET "http://localhost:9200/_cat/indices?v"
检查节点信息
curl -X GET "http://localhost:9200/_nodes?pretty"
- 集群健康检查
检查集群健康状态
curl -X GET "http://localhost:9200/_cluster/health?pretty"
检查集群状态
curl -X GET "http://localhost:9200/_cluster/stats?pretty" - 节点管理
获取节点信息
curl -X GET "http://localhost:9200/_nodes?pretty"
获取节点统计信息
curl -X GET "http://localhost:9200/_nodes/stats?pretty" - 索引管理
创建索引
curl -X PUT "http://localhost:9200/my_index?pretty"
删除索引
curl -X DELETE "http://localhost:9200/my_index?pretty"
获取索引信息
curl -X GET "http://localhost:9200/my_index?pretty"
获取所有索引信息
curl -X GET "http://localhost:9200/_cat/indices?v"
打开索引
curl -X POST "http://localhost:9200/my_index/_open?pretty"
关闭索引
curl -X POST "http://localhost:9200/my_index/_close?pretty" - 文档管理
索引文档
curl -X POST "http://localhost:9200/my_index/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
"field1": "value1",
"field2": "value2"
}'
获取文档
curl -X GET "http://localhost:9200/my_index/_doc/1?pretty"
删除文档
curl -X DELETE "http://localhost:9200/my_index/_doc/1?pretty" - 快照与恢复
创建快照仓库
curl -X PUT "http://localhost:9200/_snapshot/my_backup?pretty" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "/mount/backups/my_backup"
}
}'
创建快照
curl -X PUT "http://localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true&pretty"
恢复快照
curl -X POST "http://localhost:9200/_snapshot/my_backup/snapshot_1/_restore?wait_for_completion=true&pretty" - 监控与调试
获取集群状态
curl -X GET "http://localhost:9200/_cluster/state?pretty"
获取集群健康状态
curl -X GET "http://localhost:9200/_cluster/health?pretty"
获取索引统计信息
curl -X GET "http://localhost:9200/my_index/_stats?pretty"
获取段信息
curl -X GET "http://localhost:9200/my_index/_segments?pretty" - 集群管理
更新集群设置
curl -X PUT "http://localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"indices.recovery.max_bytes_per_sec": "50mb"
}
}'
GET /uri/xxx 查看(相当于数据库中的select操作),即通过请求URL获得资源。
PUT /uri/xxx 更新/创建(相当于数据库中的update操作),即通过请求URL修改某个内容。
POST /uri 创建 (相当于数据库中的insert操作),即通过请求URL添加新的资源,用于表单提交。
DELETE /uri/xxx 删除 (相当于数据库中的delete操作),即通过请求URL删除某个内容。
1)GET请求:得到或查看数据
GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容。
也就是说GET请求不会产生副作用。无论进行多少次操作,结果都是一样的。
2)PUT请求:在已经存在的数据上更新数据
与GET请求不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等。
也就是说无论进行多少次PUT操作,其结果并没有不同。
3)POST请求:创建数据
POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。
几乎目前所有的提交操作都是默认用POST请求的。
4)DELETE请求:删除数据
DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
1)GET请求的操作是安全的。
所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如用GET请求方式浏览文章,不管浏览多少次,那篇文章还在那,没有变化。
当然有人可能会说每浏览一次文章,文章的浏览数就增加一次,这不也改变了资源的状态么。
其实这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的。
2)PUT,DELETE请求的操作是幂等的。
所谓幂等:是指无论进行多少次重复操作,都是实现相同的结果。也就是说若输入相同的参数执行任意次结果相同,则为等幂操作!!!!
比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。
顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。
3)POST操作既不是安全的,也不是幂等的
比如常见的POST重复加载问题:当多次发出同样的POST请求后,其结果是创建出了若干的资源。
4)安全和幂等的意义在于:
当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。
5)需要注意事项
创建操作可以使用POST请求,也可以使用PUT请求!区别在于:
POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx)。
再通俗点说,如果URL可以在客户端确定,那么就使用PUT请求,如果是在服务端确定,那么就使用POST请求。
比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST请求方法了。
所以,简单总结下:
GET,POST,PUT都是幂等性操作,而POST不是幂等性操作;
GET:不管对资源查询多少次,此实现都是一样的
PUT:将A第一次修改成B,再进行多次操作,最终结果还是还算B,与第一次写的结果是一样的,所有PUT是
DELETE:第一次把资源删除以后,后面进行多少次操作都算资源被删除
POST: 不是,因为一次请求添加一份新的资源,二次请求是乎产生不同的结
1)GET请求 和 POST请求
从字面意思就可以看出两者区别,一个是GET(获取),一个是POST(发送)。
GET方法的请求用来告诉服务器需要获取哪些内容(uri+query),向静态页面(uri)请求则直接返回文件内容给浏览器,向一个动态页面请求时可以
提供查询参数(query)以获得相应内容。
POST方法的请求用来向服务器提交内容,主要是为了提交,而不是为了请求内容,就是说POST的初衷并不要求服务器返回内容,只是提交内容让服务器
处理(主要是存储或者处理之后再存储)。
2)PUT请求 和 POST请求
PUT请求主要作用在一个具体资源之上的(即uri/xxx),POST请求主要作用在一个集合资源之上的(即uri)
就是说,如果URL可以在客户端确定就使用PUT请求,如果URL在服务端确定就使用POST请求。
PUT请求和POST请求容器混淆的就是它们都可以修改数据。它们的区别在于是否等幂:PUT请求是等幂操作,而POST请求是不等幂操作。
所以POST方式每执行一次会增加一条数据,而PUT请求是在已经存在的数据上进行修改。
也就是说POST方式一般用于增加数据,POST方式用于修改已有数据。