新增文档

语法:

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

示例:

  1. POST /halo/_doc/1
  2. {
  3. "info": "黑马程序员Java讲师",
  4. "email": "zy@itcast.cn",
  5. "name": {
  6. "firstName": "云",
  7. "lastName": "赵"
  8. }
  9. }

查询文档

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

语法:

  1. GET /{索引库名称}/_doc/{id}

通过 Kibana 查看数据:

GET /halo/_doc/1

删除文档

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

语法:

DELETE /{索引库名}/_doc/id值

示例:

DELETE /halo/_doc/1

修改文档

修改有两种方式:

  • 全量修改:直接覆盖原来的文档
  • 增量修改:修改文档中的部分字段

全量修改

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

  • 根据指定的 id 删除文档
  • 新增一个相同 id 的文档

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

语法:

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

示例:

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

增量修改

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

语法:

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

示例:

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

文档操作总结

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