es数组操作
数组的增删改查。附官网地址:https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-types.html
-
向数组中添加一个元素。
POST /person/_update/1 { "script": { "source": """ def oldVal = ctx._source.children; if(oldVal == null){ // 如果不存在就创建 ctx._source.children = new ArrayList(); } ctx._source.children.add(params.child) """ , "params": { "child": "1" } } }
-
删除数组中的某个元素
POST /person/_update/1 { "script": { "source": """ ctx._source.children.removeIf( it -> it.equals("1") ); """ } }
-
根据下标替换某个元素
POST /person/_update/1 { "script": { "source": """ ctx._source.children[0] = 3 """ } }
-
查询元素
POST /person/_update/1 { "script": { "source": """ if (ctx._source.children.contains(3)){ ctx._source.children[0] = 4 } """ } } 或者使用 range,terms等 POST person/_search { "query": { "range": { "children": { "gte": 0, "lte": 1 } } } }