Elasticsearch Essentials——Elasticsearch 基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/u010871004/article/details/82670065