Elasticsearch API实现CRUD(增删改查)

1、Kibana的安装、配置及使用

本文将基于Kibana来讲解,再次之前需要安装Kibana工具。

  1. 进入Elasticsearch官网下载Kibana:https://www.elastic.co/downloads/kibana,需要注意的是Kibana的版本跟随着Elasticsearch的版本,所以需要下载跟你的Elasticsearch一致的版本。
  2. 解压kibana的压缩包,进入config目录下,修改kibana.yml文件中的elasticsearch.url参数,将localhost修改为你的Elasticsearch服务的IP。
  3. 启动bin目录下的kibana(基于Linux)或者bin目录下的kibana.bat(基于Windows)。
2、添加索引

添加索引

PUT /lib/ //lib是索引名
{
  "settings":{
     "index":{
        "number_of_shards": 5, //分片数
        "number_of_replicas": 1 //副本数
     }
  }
}

//这样创建的索引配置信息将是默认的
PUT lib2

//返回结果
{
  "acknowledged": true,
  "shards_acknowledged": true,
  "index": "lib"
}

查看索引的配置信息

GET /lib/_settings

//返回结果
{
  "lib":{
     "settings":{
        "creation_date": "1525922783367",
        "number_of_shards": 5,
        "number_of_replicas": 1,
        "uuid": "ICnRur_NTn2s9sM04XE_rQ",
        "version": {
           "created": "6020499"
        },
        "provided_name": "lib"
     }
  }
}

//查看所有索引的配置
GET _all/_setings

添加文档

//分别为索引:_index、类型:_type、Id:_id,
//id不设置将会自动生成一个随机且唯一的字符串作为该文档的id(需要使用POST请求)
PUT /lib/user/1  
{
  "frist_name": "Jane",
  "last_name": "Smith",
  "age": 32,
  "about": "I like to collect rock albums",
  "interests": ["music"]
}

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 1,
  "result": "created", //返回请求结果
  "_shards": {
     "total": 1,
     "successful": 1,
     "failed": 0
  },
  "_seq_no": 0,
  "_primary_trem": 1
}

查看文档

GET /lib/user/1

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 1,
  "found": true,
  "_source": {
     "frist_name": "Jane",
     "last_name": "Smith",
     "age": 32,
     "about": "I like to collect rock albums",
     "interests": [
        "music"
     ]
  }
}

//查看部分字段
GET /lib/user/1?_source=age,about

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 1,
  "found": true,
  "_source": { 
     "about": "I like to collect rock albums",
     "age": 32
  }
}

更新文档

//覆盖式修改PUT
PUT /lib/user/1  
{
  "frist_name": "Jane",
  "last_name": "Smith",
  "age": 36, //原本的age是32
  "about": "I like to collect rock albums",
  "interests": ["music"]
}

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 2, //更新版本发生了改变
  "result": "updated", //返回请求结果发生了改变
  "_shards": {
     "total": 1,
     "successful": 1,
     "failed": 0
  },
  "_seq_no": 1, //
  "_primary_trem": 1
}

//直接更新
POST /lib/user/1/_update
{
  "doc":{
     "age": 30
  }
}

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 3, //更新版本再次发生了改变
  "result": "updated", //返回请求结果依然为updated
  "_shards": {
     "total": 1,
     "successful": 1,
     "failed": 0
  },
  "_seq_no": 2,
  "_primary_trem": 1
}

删除索引

//删除一个文档
DELETE /lib/user/1

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 4, //更新版本再次发生了改变
  "result": "deleted", //返回请求结果deleted
  "_shards": {
     "total": 1,
     "successful": 1,
     "failed": 0
  },
  "_seq_no": 3,
  "_primary_trem": 1
}

//此时再次获取id为1的文档
GET /lib/user/1

//返回结果
{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "found": false
}

//删除一个索引
DELETE /lib

//返回结果
{
  "acknowledged": true
}

猜你喜欢

转载自blog.csdn.net/zx711166/article/details/81539060