ES 的文档操作

1.新增文档

语法:

 

POST /索引库名/_doc/文档id
{
    "字段1": "值1",
    "字段2": "值2",
    "字段3": {
        "子属性1": "值3",
        "子属性2": "值4"
    },
    // ...
}

示例:

POST /heima/_doc/1
{
    "info": "黑马程序员Java讲师",
    "email": "zy@itcast.cn",
    "name": {
        "firstName": "云",
        "lastName": "赵"
    }
}

响应:

2.查询文档

根据rest风格,新增是post,查询应该是get,不过查询一般都需要条件,这里我们把文档id带上。

语法: GET /{索引库名称}/_doc/{id}

通过kibana查看数据: GET /heima/_doc/1

查看结果:

3.删除文档

删除使用DELETE请求,同样,需要根据id进行删除:

语法:  DELETE /{索引库名}/_doc/id值

示例: 

# 根据id删除数据
DELETE /heima/_doc/1

4.修改文档

修改有两种方式:

  • 全量修改:直接覆盖原来的文档

  • 增量修改:修改文档中的部分字段

4.1.全量修改

全量修改是覆盖原来的文档,其本质是:

  • 根据指定的id删除文档

  • 新增一个相同id的文档

注意:如果根据id删除时,id不存在,第二步的新增也会执行,也就从修改变成了新增操作了。

语法:

PUT /{索引库名}/_doc/文档id
{
    "字段1": "值1",
    "字段2": "值2",
    // ... 略
}

示例:

PUT /heima/_doc/1
{
    "info": "黑马程序员高级Java讲师",
    "email": "zy@itcast.cn",
    "name": {
        "firstName": "云",
        "lastName": "赵"
    }
}

4.2.增量修改

增量修改是只修改指定id匹配的文档中的部分字段。

语法:

POST /{索引库名}/_update/文档id
{
    "doc": {
         "字段名": "新的值",
    }
}

示例:

POST /heima/_update/1
{
  "doc": {
    "email": "ZhaoYun@itcast.cn"
  }
}

5.总结

文档操作有哪些?

  • 创建文档 :POST/索引库名/_doc/文档id  { json文档 }
  • 查询文档 :GET/{索引库名}/_doc/文档id
  • 删除文档 :   DELETE/{索引库名}/_doc/文档id 
  • 修改文档:
    • 全量修改  :   PUT /{索引库名}/_doc/文档id { json文档 }
    • 增量修改  :   POST /{索引库名}/_update/文档id { "doc": {字段}}

mapping 的索引库无法修改只能新增,而文档操作的修改不是修改索引库,是修改了文档内容。

 

 

posted @ 2022-12-06 23:21  kisshappyboy  阅读(105)  评论(0编辑  收藏  举报