PHP - Elasticsearch: обновить несколько документов - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть массив PHP, заполненный идентификаторами.Я хотел бы обновить все мои документы Elasticsearch в соответствии с этим массивом:

, если id документа равно

  • в массиве, а затем установить my_fields в true
  • не в массиве, затем установите my_field в false

Я использую этот пакетasticsearch-php: https://github.com/elastic/elasticsearch-php.

Есть ли один?запрос "решение этой проблемы?

1 Ответ

0 голосов
/ 01 декабря 2018

Я думаю, вам нужно _update_by_query вместе с script, чтобы установить my_field = true , как показано ниже. См. , в качестве альтернативы вы можете использовать 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;"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...