5_Kibana的基本操作

本文档详细介绍了如何使用Kibana客户端操作Elasticsearch,包括创建和删除索引,定义类型映射,添加、查询、删除和更新文档。此外,还提到了批量操作的实现,如批量索引、修改和删除文档,强调了Elasticsearch的灵活性和容错性。
摘要由CSDN通过智能技术生成

使用客户端kibana操作ElasticSearch

在这里插入图片描述

你在左边缩写的语句,kibana会帮助你进行缓存,所以你不用担心kibana关闭后消失。

索引(Index)的基本操作

# 创建索引
PUT /dangdang/ 

# 删除索引
DELETE /dangdang

# 删除所有索引[慎用:ElasticSearch会自带两个索引,如果删除kibana客户端将不能使用,只有重启]
DELETE /*	

# 查看索引信息
GET /_cat/indices?v 

类型(type)的基本操作

创建类型

注意: 这种方式创建类型要求索引不能存在

# 创建/book索引并创建(musicbook)类型
PUT /book
{
  "mappings": {
    "musicbook": {
      "properties": {
        "name":{
          "type":"keyword"
        },
        "price":{
          "type":"double"
        },
        "desc":{
          "type":"text"
        }
      }
    }
  }
}

/book:即我们创建的索引名字

“mappimgs”:映射,固定写法,即对类型的数据结构进行约束,这样在添加文档时,就会有约束

“musicbook”:即类型名,ES6之后建议一个索引创建一个类型

“properties”:属性,固定写法,即将类型所要创建的属性添加在里面

“name”…等:属性名

“type”:固定写法,约束类型,可以根据属性的不同写不同类型

Mapping Type: : text , keyword , date ,integer, long , double , boolean or ip

查看类型
# 语法
GET /索引名/_mapping

# 比如
GET /book/_mapping

结果:
{
  "book" : {
    "mappings" : {
      "musicBook" : {
        "properties" : {
          "desc" : {
            "type" : "text"
          },
          "name" : {
            "type" : "keyword"
          },
          "price" : {
            "type" : "double"
          }
        }
      }
    }
  }
}

文档(document)的基本操作

添加文档

如果不指定id,ES默认会生成一个随机id,后面操作文档都根据此id

这也是为什么在给类型添加属性时,一般不添加id属性

# 语法 PUT /索引/类型/id

PUT /book/musicBook/1
{
  "name":"音乐书",
  "price":"22.0",
  "desc":"这是一本音乐书"
}

返回结果:
{
  "_index" : "book",
  "_type" : "musicBook",
  "_id" : "1",
  "_version" : 3,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1
}
查询文档
# 语法 GET /索引/类型/id

GET /book/musicBook/1

返回结果:
{
  "_index" : "book",
  "_type" : "musicBook",
  "_id" : "1",
  "_version" : 3,
  "_seq_no" : 2,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "音乐书",
    "price" : "22.0",
    "desc" : "这是一本音乐书"
  }
}
删除文档
# 语法 DELETE /索引/类型/id

DELETE /book/musicBook/1

返回结果:
{
  "_index" : "book",
  "_type" : "musicBook",
  "_id" : "1",
  "_version" : 4,
  "result" : "deleted",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 1
}
更新文档

错误方式:

POST /book/musicBook/1
{
  "name":"张三"
}

# 查看文档:覆盖掉了原有的属性信息,只有新更新的
{
  "_index" : "book",
  "_type" : "musicBook",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 5,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "张三"
  }
}

正确方式: 使用关键词_update

 POST /索引/类型/id/_update
    {
      "doc":{
        "属性名":"值"
      }
    }

# 方式一:在原有数据基础上进行更新

POST /book/musicBook/1/_update
{
  "doc": {
    "price":"40"
  }
}

# 第二种方式:添加新的约束的数据
这种方式,type并没有color属性,但你添加的时候,ES会给你进行相应的匹配

POST /book/musicBook/1/_update
{
  "doc": {
    "color":"红色"
  }
}

# 第三种方式:根据script脚本进行更新[使用较少]

POST /book/musicBook/1/_update
{
  "script": "ctx._source.price += 5.0"
}
批量操作

有时候,想要同时添加文档、删除文档、修改文档、索引文档组合进行

使用关键词 _bulk

# 同时索引两个文档
PUT /book/musicBook/_bulk
{"index":{"_id": "3"}}
  { "name":"童话书", "price":"21","des":"这是一本童话书"}
{"index":{"_id": "4"}}
  {"name":"冒险书","price":"24","desc":"这是一本冒险书"}
  
# 同时修改和删除文档
PUT /book/musicBook/_bulk
{"update":{"_id":"3"}}
{"doc":{"name":"修改后的童话书"}}
{"delete":{"_id":"4"}}

注意:所谓批量操作,简单说就是你想进行删除操作,你就使用"delete"关键词,想要进行修改操作,你就使用"update"关键词

批量时不会因为一个失败而全部失败,而是继续执行后续操作,批量在返回时按照执行的状态开始返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值