elasticsearch文档操作:增删改

文档:等同于mysql中的一条数据

文档id,是这条数据的唯一标识(类似于数据库的rowid),由_index、_type、_id三个组成

请求 /库名称/表名称/rowid

请求 /_index/_type/_id

文档操作

文档操作有哪些?
创建文档:POST /{索引库名}/_doc/文档id
查询文档:GET /{索引库名}/_doc/文档id
删除文档:DELETE /{索引库名}/_doc/文档id
修改文档:
全量修改:POST|PUT /{索引库名}/_doc/文档id
增量修改:POST /{索引库名}/_update/文档id { "doc": {字段}}

1.新建文档

  • POST插入或更新时,可以手动指定文档_id,当没有定义_id时,系统将自动生成。

  • PUT插入或更新时,必须指定文档_id

POST =insert插入,若文档已存在,也可以更新文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#插入文档,当没有指定文档_id时,将自动生成文档_id
POST /ffing/ebook
{
  "小说名称":"盗墓笔记",
  "小说作者":"南派三叔",
  "小说字数":"1500000",
  "发版时间":"2007-01-01"
}

#指定文档_id为1
POST /ffing/ebook/1
{
  "小说名称":"盗墓笔记",
  "小说作者":"南派三叔",
  "小说字数":"1500000",
  "发版时间":"2007-01-01"
}

PUT=update,当文档不存在就创建,若文档存在就更新;指定文档_id进行更新

1
2
3
4
5
6
7
8
#使用PUT插入或更新,指定_id为2
PUT /ffing/ebook/2
{
  "小说名称":"诛仙",
  "小说作者":"萧鼎",
  "小说字数":"1200000",
  "发版时间":"2003-01-01"
}

2.修改文档

可以基于文档_id或基于doc进行修改

基于_id,是全量修改,会修改整个文档的内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#新建或修改,_id为22的文档
POST /ffing/ebook/22
{
  "小说名称":"盗墓笔记",
  "小说作者":"南派三叔",
  "小说字数":"1500000",
  "发版时间":"2007-01-01"
}

#新建或修改,_id为22的文档
PUT /ffing/ebook/22
{
  "小说名称":"诛仙",
  "小说作者":"萧鼎",
  "发版时间":"2003-01-01"
}

基于doc,是增量修改,可以根据字段名进行修改,关键字:_update

注:若更新的field(字段)不存在,则会被追加!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#POST /_index()/_type()/_id(rowid)/_update
#_update就是更新参数
#更新文档_id为22的数据中小说字数为123456

#doc方式更新文档_id为22的文档小说字数改为12345678
POST /ffing/ebook/22/_update
{
  "doc":{
    "小时字数":"12345678"
  }
}

3.删除文档

delete删除时更加文档_id进行删除

1
2
3
4
#请求  /库名称/表名称/rowid
#请求  /_index/_type/_id
#删除文档_id为22的文档
DELETE /ffing/ebook/22