1.新增文档
语法:
POST /索引库名/_doc/文档id
{
"字段1": "值1",
"字段2": "值2",
"字段3": {
"子属性1": "值3",
"子属性2": "值4"
},
// ...
}
示例:
POST /dcxuexi/_doc/1
{
"info": "我爱北京天安门",
"email": "[email protected]",
"name": {
"firstName": "曹",
"lastName": "操"
}
}
响应:
2.查询文档
根据rest
风格,新增是POST
,查询应该是GET
,不过查询一般都需要条件,这里我们把文档id
带上。
语法:
GET /{
索引库名称}/_doc/{
id}
通过kibana查看数据:
GET /dcxuexi/_doc/1
查看结果:
3.删除文档
删除使用DELETE
请求,同样,需要根据id
进行删除:
语法:
DELETE /{
索引库名}/_doc/id值
示例:
# 根据id删除数据
DELETE /dcxuexi/_doc/1
结果:
4.修改文档
修改有两种方式:
- 全量修改:直接覆盖原来的文档
- 增量修改:修改文档中的部分字段
4.1.全量修改
全量修改是覆盖原来的文档,其本质是:
- 根据指定的
id
删除文档 - 新增一个相同
id
的文档
注意:如果根据id
删除时,id
不存在,第二步的新增也会执行,也就从修改变成了新增操作了。
语法:
PUT /{
索引库名}/_doc/文档id
{
"字段1": "值1",
"字段2": "值2",
// ... 略
}
示例:
PUT /dcxuexi/_doc/1
{
"info": "我爱上海东方明珠",
"email": "[email protected]",
"name": {
"firstName": "孙",
"lastName": "权"
}
}
4.2.增量修改
增量修改是只修改指定id
匹配的文档中的部分字段。
语法:
POST /{
索引库名}/_update/文档id
{
"doc": {
"字段名": "新的值",
}
}
示例:
POST /dcxuexi/_update/1
{
"doc": {
"email": "[email protected]"
}
}
5.总结
文档操作有哪些?
- 创建文档:
POST /{索引库名}/_doc/文档id { json文档 }
- 查询文档:
GET /{索引库名}/_doc/文档id
- 删除文档:
DELETE /{索引库名}/_doc/文档id
- 修改文档:
- 全量修改:
PUT /{索引库名}/_doc/文档id { json文档 }
- 增量修改:
POST /{索引库名}/_update/文档id { "doc": {字段}}
- 全量修改: