elasticsearch之文档APIs
作者:互联网
1.创建文档
1.1 文档和索引一样是可以不需要预先定义的,可以动态写入。
- action.auto_create_index:是否自动创建索引
- index.mapper.dynamic :是否自动创建mapping,mapping中是包含type的。
1.2 version
- 如果写入不指定版本,则es不会进行版本验证
- 版本默认从1开始,以后每次递增1
- 版本类型分为:
internal
:提供的版本和存储的版本相同才可以执行;external
或者external_gt
提供的版本大于存储的版本才可以执行;external_gte
:提供的版本大于或等于存储的版本才可以执行,该情况慎用,可能丢失数据。 - 如果指定内部版本,一般要先获取原来版本,再更新(注意:更新时版本是查询的版本,会从和es当前版本是否相同判断是否版本冲突)
- 使用外部版本(例如版本信息由mysql维护),则版本范围是[0, 9.2e+18],是否成功判断的方式是:提供的版本号是否大于当前的版本号。
PUT twitter/tweet/1?version=2
{
"message" : "elasticsearch now has versioning support, double cool!"
}
1.3 operation type
主要用于文档的id不存在才允许创建,下例如果文档id:1已经存在创建失败。
PUT twitter/tweet/1/_create
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
或者
PUT twitter/tweet/1?op_type=create
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
1.4 id自动生成
文档的id可以不显示提供,可以自动生成。
POST twitter/tweet/
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
1.5 显示指定routing
默认根据文档id进行hash之后分配route
POST twitter/tweet?routing=kimchy
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
标签:12,APIs,tweet,文档,版本,elasticsearch,message,twitter 来源: https://blog.csdn.net/qq_18218071/article/details/114842617