新增文档
语法:
POST /索引库名/_doc/文档id{"字段1": "值1","字段2": "值2","字段3": {"子属性1": "值3","子属性2": "值4"},// ...}
示例:
POST /halo/_doc/1{"info": "黑马程序员Java讲师","email": "zy@itcast.cn","name": {"firstName": "云","lastName": "赵"}}
查询文档
根据 rest 风格,新增是 post,查询应该是 get,不过查询一般都需要条件,这里我们把文档 id 带上。
语法:
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”: {字段}}
