之前我们学习了索引相关的操作,有了索引,我们就可以往索引中添加文档,完成各种文档的操作,操作文档是 ES 中相对复杂的内容,涉及到增删改查,尤其是查询,可以玩出各种花样。接下来我们开始学习如何使用 RESTful API 操作文档,这里同样使用 Kibana 发送请求。
1、添加文档
添加文档时可以指定文档 id,例如给user索引添加一个id为1的文档,其中_doc是 ES 默认的类型名:
POST user/_doc/1
{
"name": "张三",
"age": 30,
"label": [
"不讲武德",
"耗子尾汁"
]
}
如果不指定文档 id,则 ES 会给一个默认值:
POST user/_doc
{
"name": "李四",
"age": 18,
"label": [
"篮球",
"Rap"
]
}
在 head 插件中查看添加的文档,注意观察 id:
没看到 label 字段的值?因为 head 工具返回 Table 格式数据时不能显示数组内容,切换到 JSON 格式即可。
前边添加文档使用的是 POST 请求,也可以使用 PUT 请求,使用 PUT 请求必须指定文档 id:
PUT user/_doc/2
{
"name": "王五",
"age": 25,
"label": [
"打工人",
"宅男"
]
}
2、修改文档
有了文档,我们可以去修改它指定字段的值,例如修改 id 为1的文档的age字段:
POST user/_update/1
{
"doc": {
"age": 32
}
}
除了修改文档的已有字段,还可以给文档添加一个新的字段:
POST user/_update/1
{
"doc": {
"school": "清华"
}
}
3、删除文档
根据文档 id 删除:
DELETE user/_doc/1
删除符合查询条件的文档:
POST user/_delete_by_query
{
"query": {
"match_phrase": {
"name": "王重阳"
}
}
}









网友评论