【问题标题】:Update by query Elasticsearch-PHP Client 2.0+查询更新 Elasticsearch-PHP Client 2.0+
【发布时间】:2016-07-18 00:59:17
【问题描述】:

我正在使用Elasticsearch 2.1.1 php 客户端进行我的ES 操作。我想通过查询更新我的文档。为此,我找到了updatebyquery,但这不适用于 ES 的2.0+ versions。那么有什么新方法可以通过查询更新我的文档吗?

【问题讨论】:

    标签: php elasticsearch elasticsearch-plugin


    【解决方案1】:

    我也在为 updateByQuery 苦苦挣扎,看看this quetion

    首先您需要编辑您的elasticsearch.yml 以允许脚本。在末尾附加以下行。

    script.engine.groovy.inline.search: on
    script.engine.groovy.inline.aggs: on
    script.engine.groovy.inline.update: on
    

    然后构造一个查询来更新所有符合条件的记录。

    $client = \Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
        # Request
        $updateRequest = [
            'index'     => 'testindex',
            'type'      => 'logs',
            'conflicts' => 'proceed',
            'body' => [
                'query' => [ 
                    'filtered' => [
                        'filter' => [
                            'bool' =>   [
                                            'must' =>
                                            [
                                                [
                                                    'match' => [ 'enabled' => 1 ],
                                                ],
                                            ]
                                        ]
                                    ]
                                ]
                            ],
                'script' => [
                        'inline' => 'ctx._source.enabled = value',
                        'params' => [
                            'value' => 0
                        ]
                ]
                ]
            ]
        ];
        # Update 
        $results = $client->updateByQuery($updateRequest);
    

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • (致投反对票的人)请说明您投反对票的原因。如果我的回答不起作用,我将很乐意修复它或者可能会详细说明。否则,我认为答案值得一票,以帮助像我一样陷入困境的其他人。
    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多