原有版本的YII2在yii2-elasticsearch如何进行批量修改或者按照多条件修改多个字段?
首先找到YII2路径vendor/yiisoft/yii2-elasticsearch/Command.php,并在最下面加入以下两个方法。
/**
*
* @content:按照条件更新ES数据
* 变更位置:vendor/yiisoft/yii2-elasticsearch/Command.php
* 案例:
* POST /index名称/type名称/_update_by_query
* {
* "query":{"match":{"条件1":"xxxxx"}},
* "script":{
* "inline": "ctx._source.xxx= params.xxx;ctx._source.xxx2 =params.xxx2",
* "params": {
* "xxx2":"波乐保罗585858",
* "xxx":[{
* "id": 1,
* "name": "不入驻天猫"
* },{
* "id": 2,
* "name": "aaaa"
* } ]
* }
* }
* }
* 参数说明
*$where = ["match"=>['条件'=>"xxxxx"]] 更新条件字段
* $script = ["source"=>"ctx._source['xxx'] = '波乐保罗888'"]