elasticsearch简单API的使用(CRUD)
1.创建文档Create,自动生成_id
#创建文档,自动生成_id
POST users/_doc
{
"user":"Mike",
"post_date":"2019-04-15T14:12:12",
"message":"trying out Kibana"
}
2.创建文档Create,指定_id
#创建文档,指定_id,如果id存在,报错,它这里其实是根据_version这个字段来判断的
PUT users/_doc/1?op_type=create
{
"user":"Jack",
"post_date":"2019-05-15T14:12:12",
"message":"trying out Elasticsearch"
}
#创建文档,指定_id,如果id存在,报错
PUT users/_create/2
{
"user":"Jack",
"post_date":"2019-05-15T14:12:12",
"message":"trying out Elasticsearch"
}
3.根据_id查询文档
GET users/_doc/1
4.更新文档index
这样会把原来的所有字段都删除掉,然后基于本次的请求内容来重建,但是_version都会自动+1
PUT users/_doc/1?op_type=index
{
"user": "Tom"
}
PUT users/_doc/1
{
"user": "Tom"
}
这样我们查看数据:
字段减少了两个。
Index与Create的区别在于:Index的时候,如果文档不存在,就建立新的文档,如果文档存在,那么现有文档就会被删除,新的文档会被建立,同时_version版本号+1。
5.修改文档_update
#真正的修改,不会删除原来的字段,只是会对相应的字段做修改
POST users/_update/1/
{
"doc":{
"post_date":"2019-05-15T14:12:12",
"message":"trying out Elasticsearch"
}
}
修改完成后,我们查询下,看到,这时会新增两个字段,同时user字段也没有消失,当然,这时的_version也会自动加1。这就是index和update的区别。
完成后,我们查询下,看到,这时会新增两个字段,同时user字段也没有消失,当然,这时的_version也会自动加1。这就是index和update的区别。
6.小结
根据ES API来区分:
操作 | 说明 |
---|---|
index | 针对整个文档,既可以新增,也可以更新 |
create | 只是新增操作,已有报错,可以用PUT指定ID,或POST不指定ID; |
update | 指的是部分更新,官方只是说用POST,请求body里用script或 doc里包含文档要更新的部分; |
delete和read | 就是delete和get请求了,比较简单 |