Elasticsearch REST API
elasticsearch撑持通过http请求响应处事,http请求默认使用9200断开,因此通过curl命令,可以发送http请求,并得到json返回内容。常用的REST API包孕一下几个:
查抄ES集群状态 curl :9200/_cat/health?v 查抄ES节点的状态 curl :9200/_cat/nodes?v 盘问所有的索引 curl :9200/_cat/indices?v 创建索引 curl -XPUT :9200/myindex/mytype/id -H ‘Content-Type: application/json‘ -d ‘{"name":"ysl"}‘ 删除索引 curl -XDELETE :9200/myindex 盘问索引 curl -XGET :9200/myindex/mytype/id 添加数据 curl -XPUT ‘:9200/kimchy/doc/1?pretty‘ -H ‘Content-Type: application/json‘ -d ‘ { "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out Elasticsearch, so far so good?" }‘ 盘问数据 curl -XGET ‘:9200/kimchy,another_user/_search?pretty=true‘ -H ‘Content-Type: application/json‘ -d ‘ { "query" : { "match_all" : {} } }‘ 批量添加数据动态映射无法添加数据,不要担忧!可以使用bulk命令,添加json文件内的数据
界说json数据 {"index":{"_index":"test123","_id":1}} {"name":"ysl","age":25} {"index":{"_index":"test123","_id":2}} {"name":"wdd","age":25} {"index":{"_index":"test123","_id":3}} {"name":"yjb","age":25}注意的是,json文件名称随意指定,第一行界说了索引和一些常用字段:
_index界说了索引的名称,如果没有指定需要在curl命令中添加索引名称字段
_type界说了索引的类型,如果没有指定需要在curl命令中添加索引类型字段
_id界说了该行数据的id,如果没有指定,,会随机生成一串数字。
执行命令进入到json文件地址的目录,执行一下命令:
curl localhost:9200/索引名称/索引类型/_bulk?pretty --data-binary @data.json注意的是:如果json文件中界说了_index和_type,那么这里可以不写(即便写了也会凭据json文件中的生成)。
curl localhost:9200/_bulk?pretty --data-binary @data.json类似的,如果凭据上面我们界说了_index却没有界说_type,那么索引会是test123,类型为我们curl命令中指定的类型。
执行上述命令
curl :9200/test123/test123/_bulk?pretty --data-binary @data.json得到以下功效
{ "took" : 1233, "errors" : false, "items" : [ { "index" : { "_index" : "test123", "_type" : "test123", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "status" : 201 } }, { "index" : { "_index" : "test123", "_type" : "test123", "_id" : "2", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "status" : 201 } } ] }