ES文档的基本操作

2020-02-01  本文已影响0人  鸿雁长飞光不度

1.CRUD基本操作

1.1 CREATE(创建)

1.2 GET(获取)

格式:GET index_name/_doc/id

例如: GET movies/_doc/1
{
  "_index" : "movies",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 9783,
  "_primary_term" : 5,
  "found" : true,
  "_source" : {
    "genre" : [
      "Adventure",
      "Animation",
      "Children",
      "Comedy",
      "Fantasy"
    ],
    "year" : 1995,
    "title" : "Toy Story",
    "id" : "1",
    "@version" : "1"
  }
}

1.3 INDEX

格式:PUT index_name/_doc/1

和CREATE的区别在于,如果文档不存在,就会索引新的文档。否则现有的文档会被删除,新的文档被索引,版本信息加1。

1.4 UPDATE(更新)

格式:

POST index_name/_update/1
{
      "doc":{
            "albums":["Album","Alumbs"] 
      }
}

1.4 DELETE(删除)

格式 DELETE index_name/_doc/1


创建

POST users/_doc
{
  "account":"zhangsan@qq.com",
  "user_name":"张三"
}
{
  "_index" : "users",
  "_type" : "_doc",
  "_id" : "38m-928BexMGWhwZ99Xt",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}

index

PUT users/_doc/38m-928BexMGWhwZ99Xt
{
  "account":"lisi@qq.com",
  "user_name":"张三"
}
{
  "_index" : "users",
  "_type" : "_doc",
  "_id" : "38m-928BexMGWhwZ99Xt",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1
}
//版本号增加了1

UPDATE

POST users/_update/38m-928BexMGWhwZ99Xt
{
      "doc":{
            "address":"地址信息" 
      }
}
{
  "_index" : "users",
  "_type" : "_doc",
  "_id" : "38m-928BexMGWhwZ99Xt",
  "_version" : 3,
  "_seq_no" : 3,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "account" : "lisi@qq.com",
    "user_name" : "张三",
    "address" : "地址信息"
  }
}

2.批量操作

2.1 Bulk API

格式: POST _bulk

用于在一次API请求里面完成多次操作,减少http请求次数,属于批量操作。

#### 2.1 POST _bulk
{"index":{"_index":"users","_id":1}}
{"account":"wangwu@qq.com","user_name":"王五"}
{"delete":{"_index":"users","_id":"1"}}
{"create":{"_index":"users","_id":4}}
{"account":"sunliu@qq.com","user_name":"孙六"}
{"update":{"_index":"users","_id":"3"}}
{"doc":{"account":"wangwu@qq.com","user_name":"王七"}}

2.2 批量读取_mget

格式:

GET /_mget
{
    "docs": [
        {
           "_index":"users",
           "_id":1
        },
        {
           "_index":"users",
           "_id":2
        }
       ]
}
{
  "docs" : [
    {
      "_index" : "users",
      "_type" : "_doc",
      "_id" : "1",
      "found" : false
    },
    {
      "_index" : "users",
      "_type" : "_doc",
      "_id" : "3",
      "_version" : 2,
      "_seq_no" : 13,
      "_primary_term" : 1,
      "found" : true,
      "_source" : {
        "account" : "wangwu@qq.com",
        "user_name" : "王七"
      }
    }
  ]
}

2.3 批量查询

格式 POST index_name/_msearch

案例


POST kibana_sample_data_logs/_msearch
{}
{"query":{"match_all":{}},"size":1}
{"index":"kibana_sample_data_logs"}
{"query":{"match_all":{}},"size":2}

用法暂时不理解以后补充,以后补

3常见错误

问题 原因
无法连接 网络故障或者集群挂了
连接无法关闭 网络故障或者节点出错
429 集群过于繁忙
4xx 请求格式有错
500 集群内部错误
上一篇 下一篇

猜你喜欢

热点阅读