修改filed值和新增filed 平常不太用,总是忘,每次都得现找语法,所以在这做个笔记。
1、修改filed值
第一种方法:
PUT /索引名/_doc/索引id
{
"属性名" : "属性值"
}
或
POST /索引名/_doc/索引id
{
"属性名" : "属性值"
}
备注:会将其他没有在{}中的属性给丢弃,如果不想丢弃可以将document的所有filed信息放到{}中。
第二种方法
POST /索引名/_doc/索引id/_update
{
"doc": {
"属性名" : "属性值"
}
}
备注:其他不在{}中的属性不会受影响,但是一次性只能修改一条数据
第三种方法
POST /索引名/_update_by_query
{
"script": {
"source": "ctx._source.属性名 = 属性值",
"lang": "painless"
},
"query": {
"match_all": {}
}
}
备注:根据查询条件修改对应的数据属性值,其他属性不会受影响
2、index新增filed
PUT /索引名/_mapping
{
"properties" : {
"属性名": {
"type": "类型"
}
}
}
备注:新增filed前,需要增加对应的mapping(应该也可以不加,es会根据值内容及格式自动加上mapping信息),增加mapping后就可以给index的filed赋值了,参考上面的“修改已存在的filed值”