我用 LinuxPHP经验分享Laravel

Kibana的基本使用

2020-03-20  本文已影响0人  众神开挂
1、检查ES是否启动成功
GET ?pretty
2、检查集群的健康状态
GET /_cat/health?v
GET _cluster/health
3、查看集群中有哪些索引
GET /_cat/indices?v 
4、简单的索引操作
创建索引:PUT /test_index?pretty
删除索引:DELETE /test_index?pretty

在 7.0 以及之后的版本中 Type 被废弃了。一个 index 中只有一个默认的 type,即 _doc

ES 的Type 被废弃后,库表合一,Index 既可以被认为对应 MySQL 的 Database,也可以认为对应 table。

5、简单的CRUD操作
5.1 创建文档

第一种格式:

PUT /index/_doc/id  ##POST方法也适用
{
  "json数据"
}

第二种格式:(防止覆盖)

创建文档时,防止覆盖id已存在的文档,可以通过_create加以限制,如下

PUT /index/_create/id
{
  "json数据"
}

第三种格式:

##不指定文档ID,需要使用POST方法,而不是PUT方法。

POST /index/_doc
{
  "json数据"
}

创建示例01(第一种格式)

PUT /ecommerce/_doc/1
{
  "name": "gaolujie yagao",
  "desc": "gaoxiao meibai",
  "price": 30,
  "producer": "gaolujie producer",
  "tags": [
    "meibai",
    "fangzhu"
  ]
}

创建示例02(第二种格式)

PUT /ecommerce/_create/2
{
  "name": "jiajieshi yagao",
  "desc": "youxiao fangzhu",
  "price": 25,
  "producer": "jiajieshi producer",
  "tags": [
    "fangzhu"
  ]
}
## 该文档如果存在,添加失败。

创建示例03(第三种格式)

POST /ecommerce/_doc
{
  "name": "zhonghua yagao",
  "desc": "caoben zhiwu",
  "price": 40,
  "producer": "zhonghua producer",
  "tags": [
    "qingxin"
  ]
}
5.2 查询文档

查询格式

GET /index/type/id

查询示例

GET /ecommerce/_doc/1

查询返回的值

{
  "_index" : "ecommerce",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "gaolujie yagao",
    "desc" : "gaoxiao meibai",
    "price" : 30,
    "producer" : "gaolujie producer",
    "tags" : [
      "meibai",
      "fangzhu"
    ]
  }
}
5.3 更新文档

文档更细

更新示例

PUT /ecommerce/_doc/1
{
  "name": "jiaqiangban gaolujie yagao",
  "desc": "gaoxiao meibai",
  "price": 40,
  "producer": "gaolujie producer",
  "tags": [
    "meibai",
    "fangzhu"
  ]
}

再次查询,检查是否更新

# GET /index/type/id

{
  "_index" : "ecommerce",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 2,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "jiaqiangban gaolujie yagao",
    "desc" : "gaoxiao meibai",
    "price" : 40,
    "producer" : "gaolujie producer",
    "tags" : [
      "meibai",
      "fangzhu"
    ]
  }
}

注意的小点

ElasticSearch实际上并没有在底层执行覆盖更新。而是先删除旧文档,再添加一条新文档。

更新字段

通过脚本更新制定字段,其中ctx是脚本语言中的一个执行对象,先获取_source,再修改price字段

POST ecommerce/_update/1
{
  "script": {
    "source": "ctx._source.price=10"
  } 
}

添加字段

与修改字段类似

POST ecommerce/_update/1
{
  "script": {
    "source": "ctx._source.add=34"
  } 
}

删除字段

POST ecommerce/_update/1
{
  "script": {
    "source":"ctx._source.remove(\"add\")"
  }
}
5.4 删除文档

示例

DELETE /ecommerce/_doc/4

成功执行后的返回的结果

{
  "_index" : "ecommerce",
  "_type" : "_doc",
  "_id" : "4",
  "_version" : 2,
  "result" : "deleted",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 7,
  "_primary_term" : 1
}
6、判定文档是否存在
HEAD index/_doc/1

示例

HEAD ecommerce/_doc/1

存在的话返回 200 - OK

上一篇 下一篇

猜你喜欢

热点阅读