和elasticsearch交互有两个方式,一种是http的方式,另一种是es的java客户端用tcp,用java代码交互,这也是前面我们看到的elasticsearch会暴漏出两个9200httpserver、9300tcpserver。
http的方式最为简单且常用,这里列举一些es常用的数据操作rest接口。
这里http的调试客户端用postman,一个功能强大的http调试客户端。
github地址:https://github.com/postmanlabs/newman
官网地址:https://www.getpostman.com/
下载后打开,看一下应该都会用的
1.集群的常用操作
1.1集群的健康
GET /_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1475247709 17 :01 :49 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0 %
1.2集群所有的节点
GET /_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168 .2.12 21 68 0 0.03 0.04 0.05 mdi - j29ev7V
192.168 .2.11 22 77 11 2.33 2.47 2.48 mdi * HXd0iop
1.3 集群所有的索引
GET /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open fdsds t4wSTgd8TTaNB3V-AzoHnw 5 1 0 0 1.8 kb 955 b
green open .kibana tqFB5-9 XRBOgjdN9-_LukA 1 1 3 0 31.8 kb 15.9 kb
green open test j5QAMePIQOCqQSgA6ubbUw 5 1 0 0 1.8 kb 955 b
以上api的规则可以看到都是/_cat/xxx,这是cat api的规则,更多cat api查看这里
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/cat.html
2.索引的基本操作
2.1创建索引
PUT /testindex?pretty
pretty参数是将返回结果格式化的
{
"acknowledged" : true ,
"shards_acknowledged" : true ,
"index" : "testindex"
}
查看索引信息
GET /testindex?pretty
{
"testindex" : {
"aliases" : {},
"mappings" : {},
"settings" : {
"index" : {
"creation_date" : "1511149556373" ,
"number_of_shards" : "5" ,
"number_of_replicas" : "1" ,
"uuid" : "ASzur3xMTY6SL_IU6pLEyw" ,
"version" : {
"created" : "5060499"
},
"provided_name" : "testindex"
}
}
}
}
2.2索引数据插入
PUT /testindex/testtype/1 ?pretty
{
"name" :"test" ,
"age" :20
}
{
"_index" : "testindex" ,
"_type" : "testtype" ,
"_id" : "1" ,
"_version" : 1 ,
"result" : "created" ,
"_shards" : {
"total" : 2 ,
"successful" : 2 ,
"failed" : 0
},
"created" : true
}
查看插入的数据
GET /testindex/testtype/1 ?pretty
{
"_index" : "testindex" ,
"_type" : "testtype" ,
"_id" : "1" ,
"_version" : 1 ,
"found" : true ,
"_source" : {
"name" : "test" ,
"age" : 20
}
}
2.3删除索引
DELETE /testindex?pretty
{
"acknowledged" : true
}
3.数据的基本操作
3.1 插入数据
2.2已经说明了插入数据的api
语法为:PUT /[index]/[type]/[id] +json数据
3.2 修改数据
语法为:POST /[index]/[type]/[id]+更新的json数据
POST /testindex/testtype/1 ?pretty
{
"name" :"test1" ,
"age" :20
}
{
"_index" : "testindex" ,
"_type" : "testtype" ,
"_id" : "1" ,
"_version" : 2 ,
"result" : "updated" ,
"_shards" : {
"total" : 2 ,
"successful" : 2 ,
"failed" : 0
},
"created" : false
}
3.3 删除数据
语法为:DELETE /[index]/[type]/[id]
DELETE /testindex/testtype/1
{
"found" : true ,
"_index" : "testindex" ,
"_type" : "testtype" ,
"_id" : "1" ,
"_version" : 4 ,
"result" : "deleted" ,
"_shards" : {
"total" : 2 ,
"successful" : 2 ,
"failed" : 0
}
}
以上是集群的基本操作,用作熟悉elasticsearch,配合head插件来了解elasticsearch更容易。
更多api请访问官网
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html
document apis,search apis,aggregations,indices apis,cat apis,cluster apis等