1、索引文档
Document - Index API
API:PUT /index/_doc/1
{
"name" : "张三",
"date" : "2009-11-15T14:12:12",
"message" : "一串文本信息"
}
如果索引尚不存在,则索引操作会自动创建索引,同时索引操作还会创建动态映射
该API 可以用来创建文档 和 覆盖文档
PS:_doc 称为 API 的端点,并不是一般认为的 type 被干掉后的替代品,端点还有 _source等...
强制创建操作
API:PUT /index/_doc/1?op_type=create
创建文档
API:PUT /index/_create/1
如果该ID在文档中的索引已经存在索引操作将失败。
自动生成Id
API:POST /index/_doc
可以在不指定id的情况下执行索引操作。在这种情况下,将自动生成id。此外,op_type 将自动设置为create(注意 POST使用而不是PUT)。
PS:ES为每条文档数据都配备了Id,所以不需要在文档的数据结构中再次指定Id数据列。文档的Id可以指定 也可以自动生成,咱们统一采用指定的方式。
2、获取文档
API:GET /index/_doc/1
过滤返回数据
API:GET twitter/_doc/0?_source_includes=*Id&_source_excludes=phone
- _source_includes、_source_excludes 包含、排除,配置使用
如果您只想指定包含,则可以使用较短的表示法:
API:GET twitter/_doc/0?_source=*Id,name
直接获取数据
GET /index/_source/1
GET /index/_source/1/?_source_includes=*Id&_source_excludes=phone
3、检查文档是否存在
API:HEAD /index/_doc/0 推荐
API:HEAD /index/_source/0
4、删除文档
API:DELETE /index/_doc/1
有意思的是,当 索引 不存在的话 ,删除操作将自动创建索引。
PS:有按条件批量删除API 这里不讲。
5、更新文档
API:/POST /index/_update/1
更新部分字段属性
{
"doc" : {
"name" : "new_name"
}
}
更新脚本
{
"script" : {
"source": "ctx._source.age += params.num",
"lang": "painless",
"params" : {
"num" : 4
}
}
}
doc 和 script 不能同时使用