ElasticSearch(简称ES)相对于传统的MySQL数据库来说,ES更擅长的是海量数据的搜索,分析和计算;如果是复杂搜索,无疑可以使用ElasticSearch。但是,传统的MySQL也有自己的有点,MySQL更擅长的是事务类型的操作,可以确保数据的安全和一致性;如果是有事务要求,如商品的下单支付等业务操作,无疑使用MySQL。因此,两者是一个互补而不是替代的关系。接下来就让我们看看如何利用kibana可视化DevTools界面实现ElasticSearch的索引和文档的增删查改吧~

一、对索引库的增删查改

1.创建一个名为cd的索引库

# 创建索引库
PUT /cd
{
  "mappings": {
    "properties": {
      "info":{
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email":{
        "type": "keyword",
        "index": false
      },
      "name":{
        "type": "object",
        "properties": {
          "firstName": {
            "type": "keyword"
          },
          "lastName": {
            "type": "keyword"
          }
        }
      }
    }
  }  
}

2.查询名为cd的索引库

# 查询索引
GET /cd

3.修改名为cd的索引库,只能添加新字段age,不能修改原来的字段

# 修改索引,只能添加新字段,不能修改原来的字段
PUT /cd/_mapping
{
  "properties":{
    "age":{
      "type":"integer"
    }
  }
}

 4.删除名为cd的索引库

# 删除索引
DELETE /cd

二、对文档(数据)的增删查改

1.在索引库cd插入文档(数据),其中1是数据的唯一标识(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)

# 插入文档(数据)(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)
POST /cd/_doc/1
{
  "info":"你好呀",
  "email":"12345@136.com",
  "name":{
    "firstName":"张",
    "lastName":"四"
  },
  "age":18
}

2.在索引库cd查询标识为1的文档(数据)

# 查询文档(数据)
GET /cd/_doc/1

3.在索引库cd修改标识为1的文档(和POST作用一样)(数据)(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)

# 修改文档(和POST作用一样)(数据)(当1已经存在的时候,
会进行全局覆盖,原来的数据没了,变成了重新执行的数据,
如果字段不一样,字段也会改变)
PUT /cd/_doc/1
{
  "info":"你好呀",
  "email":"12345@136.com",
  "name":{
    "firstName":"张",
    "lastName":"三"
  },
  "age":18
}

4.在索引库cd局部修改标识为1的文档,只修改某些字段,其余的字段不会消失(上面的POST和PUT修改是全局,会消失),当字段不存在时会添加字段这个字段进去

# 局部修改,只修改某些字段,其余的字段不会消失(上面的POST和PUT修改是全局,会消失),当字段不存在时会添加字段这个字段进去
POST /cd/_update/1
{
  "doc": {
    "info":"你好丫丫~"
  }
}

5.在索引库cd删除标识为1的文档(数据)

# 删除文档(数据)
DELETE /cd/_doc/1

至此,我们利用ElasticSearch对索引库和文档(数据)的增删查改就完成啦~