Elasticsearch基本​文档API操作汇总

Create

  • 1.POST {index_name}/_doc {data}
index_name:指定索引名称
data:要存储的数据

创建文档时自动生成文档id,若指定的索引不存在,则创建索引

示例:

POST user/_doc
{
  "username" : "dream-hammer",
  "message" : "爱做梦的锤子"
}
  • 2.PUT {index_name}/_doc/{id}?op_type=create {data}
index_name:指定索引名称
id:指定文档id
data:要存储的数据

创建新文档使用指定的文档id,若id已存在,则报错,若指定的索引不存在,则创建索引

示例:

PUT user/_doc/1?op_type=create
{
  "username" : "dream-hammer",
  "message" : "爱做梦的锤子"
}
  • 3.PUT {index_name}/_create/{id} {data}
index_name:指定索引名称
id:指定文档id
data:要存储的数据

创建新文档使用指定的文档id,若id已存在,则报错,若指定的索引不存在,则创建索引

PUT user/_create/1
{
  "username" : "dream-hammer",
  "message" : "爱做梦的锤子"
}

Read

  • 1.GET {index_name}/_doc/{id}
index_name:指定索引名称
id:指定文档id  

获取指定索引下的指定id的文档

示例:

GET user/_doc/1

Update

  • 1.PUT {index_name}/_doc/{id} {data}
index_name:指定索引名称
id:指定文档id
data:要更新的数据

先删除指定id的文档数据,再将当前数据写入,指定id文档不存在时,则插入当前数据,与创建文档的第二种方式对比,当有op_type=create时,就是创建文档

示例:

PUT user/_create/1
{
  "username-new" : "dream-hammer"
}
  • 2.POST {index_name}/_update/{id} {data}
index_name:指定索引名称
id:指定文档id
data:要更新的数据

将更新数据与指定id的文档原始数据进行合并更新,若指定id文档不存在,则报错

示例:

POST user/_update/1
{
  "doc":{
    "message" : "爱做梦的锤子update",
    "test":"测试"
  }
}

Delete

  • 1.DELETE {index_name}/_doc/{id}
index_name:指定索引名称
id:指定文档id  

删除指定id的文档

示例:

DELETE user/_doc/3

批量操作

  • _buik

请求格式如下:

POST _bulk
{operation:{"_index":"{index_name}","_id":"10"}}
{ data}
{operation:{"_index":"{index_name}","_id":"10"}}
{ data}
... ...
operation:操作类型
index_name:指定索引名称
id:指定文档id  data:操作数据,当操作没有不需要数据时,可以不写

一次请求可以指定多个索引进行多种操作,每个操作都有自己的返回码,各个操作之间的成功与否不相互影响

示例:

POST _bulk
{ "index" : { "_index" : "user", "_id" : "1" } }
{ "username" : "爱做梦的锤子1" }
{ "delete" : { "_index" : "user", "_id" : "1" } }
{ "create" : { "_index" : "user", "_id" : "2" } }
{ "username" : "爱做梦的锤子2" }
{ "update" : {"_index" : "user","_id" : "1"} }
{ "doc" : {"username" : "爱做梦的锤子update"} }
  • _mget

请求格式如下:

#方式一

GET /_mget
{
    "docs" : [
        {
            "_index" : {index_name},
            "_id" : {id}
        },
        {
            "_index" : {index_name},
            "_id" : {id}
        },
        ... ...
    ]
}

#方式二

GET {index_name}/_mget
{
    "docs" : [
        {
            "_id" : {id}
        },
        {
            "_id" : {id}
        },
        ... ...
    ]
}
index_name:指定索引名称
id:指定文档id

方式一:一次请求get到指定的多个索引的多个id的文档

方式二:一次请求get到一个指定索引下的多个id的文档

示例:

#方式一

GET _mget
{
  "docs":[
    {
      "_index":"user",
      "_id":"1"
    },
        {
      "_index":"movies",
      "_id":"1163"
    }
  ]
}

#方式二

GET user/_mget
{
  "docs":[
    {
      "_id":"1"
    },
    {
      "_id":"2"
    }
  ]
}
  • _msearch
展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java