php使用Elasticsearch-api之update_by_query操作

来源:互联网 发布:隔热断桥铝合金 知乎 编辑:程序博客网 时间:2024/06/05 17:14
update_by_query是elasticsearch通过查询条件进行文档更新操作
使用update_by_query要满足如下条件:
1、根据查询条件进行文档更新的API是在Elasticsearch2.3+以上版本加上的
2、在Elasticsearch配置文件elasticsearch.ymf中加入如下配置项
script.inline: on
script.indexed: on
PHP使用update_by_query代码如下
$params = [    'index' => 'my_index',    'body' => [        'query' => [            'bool' => [                'must' => [                    'range' => [                        'age' => [                            'gt' => '20',                            'lt' => '40'                        ]                    ]                ]            ]        ],        'script' => [            'inline' => "ctx._source.name=\"青年人\";  ctx._source.age=30"        ]    ]];$client = Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();$res = $client->updateByQuery($params);
执行后的响应体例子如下
{  "took" : 639,    #从整个操作的开始到结束的毫秒数。  "deleted": 0,    #删除的数目  "batches": 1,   #通过查询删除的滚动响应数量。  "version_conflicts": 2,   #由查询命令删除的版本冲突数。  "retries": 0,    #查询删除的重试次数是响应于完整队列  "throttled_millis": 0,   #请求睡眠符合的毫秒数requests_per_second。  "failures" : [ ]   #所有索引失败的数组。如果这是非空的,那么请求因为这些失败而中止。}



1 0
原创粉丝点击