版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010871004/article/details/82670065
上一篇文章,我们已经把elasticsearch和kibana的dev tools安装好,在自己的电脑上。现在我们需要了解下elasticsearch的基本操作。
创建index
对于elasticsearch存在着index,type,document等概念,跟现在的关系型数据库相比较而言,index对应着数据库,type对应着表,document对应着表中的每一条记录。首先了解下elasticsearch中的服务状态:
- green:green状态表示elasticsearch中的primary shard和replica shard都是处于active的状态。
- yellow:表示elasticsearch中的primary shard处于active状态,但是replica shard不是处于active的状态。当我们在自己的机器上启动一个es的实例的话,当前的es的状态就是yellow的,因为es中的replica shard和primary shard默认是创建在两台机器上,现在只有一个es实例,所以服务器上的replica shard是不存在的,所以当前的状态是yellow。
- red:表示elasticsearch中的primary shard不是处于active状态,并且replica shard不是处于active的状态。
查看服务健康状态
get _cat/health?v //带上参数v是为了能够将列名显示出来,去掉?v,就是只显示值。
返回信息
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1536764083 22:54:43 elasticsearch yellow 1 1 1 1 0 0 1 0 - 50.0%
查看当前存在的index
get _cat/indices?v
返回信息
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open .kibana T7R--t5iSDKX2t1TnBRfPg 1 1 1 0 3.1kb 3.1kb
创建index
es可以接受json类的数据格式,所以我们在创建数据的时候可以直接使用json的数据格式,例如下面的这样
put /oa/employee/1
{
"name":"wangkai",
"age":34,
"gender":"male",
"hobby":["basketball","football"],
"address":{
"province":"jiangsu",
"city":"yancheng",
"county":"xiangshui",
"details":"hepingjie"
}
}
put /oa/employee/2
{
"name":"wangyuanyuan",
"age":24,
"gender":"female",
"hobby":["games"],
"address":{
"province":"shandong",
"city":"jinan",
"county":"zhangqiu",
"details":"moalingshanlu"
}
}
put /oa/employee/3
{
"name":"lisi",
"age":30,
"gender":"male",
"hobby":["basketball"],
"address":{
"province":"shandong",
"city":"jinan",
"county":"lixiaqu",
"details":"yulanguanchang"
}
}
put /oa/employee/4
{
"name":"lizongrui",
"age":37,
"gender":"male",
"hobby":["basketball"],
"address":{
"province":"beijing",
"city":"chaoyangqu",
"county":"chaoyangqu",
"details":"chaoyanglu"
}
}
put /oa/employee/5
{
"name":"jiangkangjian",
"age":25,
"gender":"male",
"hobby":["basketball"],
"address":{
"province":"jiangsu",
"city":"suzhou",
"county":"huqiuqu",
"details":"disanlu"
}
}
返回信息
{
"_index": "oa",
"_type": "employee",
"_id": "5",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
上面我们执行了创建了oa的index,我们可以通过执行get _cat/indices?v可以查看到,es中多出来一个oa的index
.kibana的index是我们在安装kibana的时候默认创建的。
获取数据
更新数据
更新数据我们可以使用put请求,也可以使用post的请求,两者的区别在于使用put请求的时候我们需要把数据完整的请求过去,把需要修改的数据在原来的基础上修改就可以;但是使用post的请求的时候,我们只需要将需要变化的数据请求过去就可以了,不要写大量的不需要变化的数据。
现在把/oa/employee/2中的爱好添加上dancing,所以执行如下
再获取数据如下
更新数据的时候,使用put方式需要将数据完整填写,要不然,当前更新的数据会把之前的数据给覆盖了。
使用post来更新数据
查看是否更新成功
删除index
DELETE /oa/employee/2