1 新增文档
1.1 自己设置id
POST /lagou-company-index/_doc/1
{
“name”:“张三”,
“job”:“java开发工程师”,
“logo”:“http://www.lgstatic.com/thubnail_120x120/i/image/M00/21/3E/CgpFT1kVd zeAJNbUAABJB7x9sm8374.png”,
“payment”:30000
}
1.2 自动生成id
POST /lagou-company-index/_doc
{
“name”:“李四”,
“job”:“前端开发工程师”,
“logo”:“http://www.lgstatic.com/thubnail_120x120/i/image/M00/21/3E/CgpFT1kVdzeAJNbUAABJB7x9sm8374.png”,
“payment”:20000
}
2 查询文档
2.1 匹配查询
POST /lagou-company-index/_search
{
“query”:{
“match”:{
“name”: “张三”
}
}
}
POST /lagou-company-index/_search
{
“query”:{
“match_all”:{
}
}
}
2.2 通过id查询
GET /lagou-company-index/_doc/1
2.3 指定查询返回的结果
GET lagou-company-index/_doc/1?_source=name,job
POST /lagou-company-index/_search
{
“query”:{
“match”:{
“name”: “张三”
}
}
, “_source”: [“job”,“name”,“payment”]
}
3 修改文档
Elasticsearch执行更新操作的时候,Elasticsearch首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是你也无法访问,Elasticsearch会在你继续添加更多数据的时候在后台清理已经标记为删除状态的文档。全部更新,是直接把之前的老数据,标记为删除状态,然后,再添加一条更新的(使用PUT或者POST)局域更新,只是修改某个字段(使用POST)
3.1 全部更新(如果不存在则新增,如果有些字段没写,将会被去掉)
PUT /lagou-company-index/_doc/3
{
“name”:“王五”,
“job”:“算法开发工程师”,
“logo”:“http://www.lgstatic.com/thubnail_120x120/i/image/M00/21/3E/CgpFT1kVdzeAJNbUAABJB7x9sm8374.png”,
“payment”:60000
}
3.2 局部更新,只会指定更新的字段(只能用post)
POST /lagou-company-index/_update/3
{
“doc”:{
“name”:“赵六”
}
}
POST /lagou-company-index/_update_by_query
{
“query”:{
“match”:{
“name”:“李四”
}
},
“script”:{
“inline”:“ctx._source.job=‘AI工程师’;ctx._source.payment=90000”
}
}
4 删除文档
DELETE /lagou-company-index/_doc/3
POST /lagou-company-index/_delete_by_query
{
“query”:{
“match”:{
“name”:“王五”
}
}
}