Elasticsearch中信息很多,同时ES也有很多信息查看命令,可以帮助开发者快速查询Elasticsearch的相关信息。
_cat
$ curl localhost:9200/_cat
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
verbose
每个命令都支持使用?v参数,来显示详细的信息:
$ curl localhost:9200/_cat/master?v
id host ip node
yBet3cYzQbC68FRzLZDmFg 127.0.0.1 127.0.0.1 lihao
help
每个命令都支持使用help参数,来输出可以显示的列:
$ curl localhost:9200/_cat/master?help
id | | node id
host | h | host name
ip | | ip address
node | n | node name
CURL的操作
curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。
curl
-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息
通过curl 操作Elasticsearch常用命令
注意elasticseach-6.3 需要增加 : curl -H "Content-Type: application/json" -XPOST http://node1:9200/twitter/doc/ -d '{"author" : "Doug Cutting"}'
ES创建索引库和索引时的注意点
1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
2)如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数
$ curl http://node1:9200/_cat/indices?v #indices 可以替换上文中的所有命令
#创建索引库 bigdata_p
$ curl -XPUT http://master:9200/bigdata_p
#POST和PUT都可以用于创建,二者之间的区别:
#PUT是幂等方法,POST不是。所以PUT用于更新,POST用于新增比较合适。
$ curl -XPOST http://localhost:9200/bigdata/product/ -d '{"author" : "Doug Cutting"}'
$ curl -XPUT http://master:9200/bigdata_p/product/ -d '{"name":"hadoop", "author": "Doug Cutting", "c_version": "2.7.3"}'
#查询某一个索引库中的数据
$ curl -XGET http://master:9200/bigdata_p/_search?pretty
#如果要查询多个字段,使用","进行隔开。eg.
$ curl -XGET http://master:9200/bigdata_p/product/1?_source=name,author&pretty
#获取source所有数据
$ curl -XGET http://master:9200/bigdata_p/product/1?_source&pretty
#根据条件进行查询
$ curl -XGET http://master:9200/bigdata_p/product/_search?q=name:hbase,hive&pretty
ES更新
ES可以使用PUT或者POST对文档进行更新,如果指定ID的文档已经存在,则执行更新操作
注意:执行更新操作的时候,ES首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,ES会继续添加更多数据的时候在后台清理已经标记为删除状态的文档。
局部更新
可以添加新字段或者更新已经存在字段(必须使用POST)
$ curl -XPOST http://master:9200/bigdata_p/product/2/_update -d '{"doc":{"c_version": "2.0.0", "publish_time": "2017-03-23"}}'
删除
#根据主键删除
$ curl -XDELETE http://master:9200/bigdata_p/product/3/
查看映射信息
curl -XGET "http://127.0.0.1:9200/productindex/_mapping?pretty"
{
"productindex" : {
"mappings" : { }
}
}
————————————————
版权声明:本文为CSDN博主「bluesort」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dengwenqi123/article/details/82863545