PHP-Elasticsearch:更新多个文档

时间:2018-12-01 13:40:58

标签: php elasticsearch

我有一个充满ID的PHP数组。我想根据此数组更新所有Elasticsearch文档:

如果文档的id

  • 在数组中然后设置 my_fieldstrue
  • 不在数组中,然后将my_field设置为false

我使用以下Elasticsearch-php软件包:https://github.com/elastic/elasticsearch-php

是否有针对此问题的“一个查询”解决方案?

1 个答案:

答案 0 :(得分:1)

我认为您需要_update_by_queryscript来设置 my_field = true ,如下所示。 See,或者您可以使用must_not设置 my_field = false

POST your_index_name/_update_by_query
{
  "query": {
      "bool": {
          "must": [
              {
                "terms": {"id": ["111","222","333"]}
              }
          ]
      }
  },
  "script" : "ctx._source.my_field = true;"
}