ElasticSearch常用操作命令汇总

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" : { }
  }
}

 

你可能感兴趣的:(elasticsearch)