Эластичный поиск: Получить весь идентификатор документа в зависимости от поля _ в источнике и обновить поле _ новыми данными - PullRequest
0 голосов
/ 25 сентября 2018

Я хотел получить все идентификаторы документов, присутствующие в репозитории эластичного поиска, в зависимости от данных поля и обновить это поле новыми данными.

Пример: "_index": "conn2", "_type": "conn2 "," _id ":" doc1537857086536 "," _score ": 1," _source ": {" suitename ":" TestSuite "

Я хочу заменить suitename на" TestSuite2 ", где suitename =" TestSuite "для всего идентификатора документа, который содержит «suitename»: «TestSuite»

  • Я пытался использовать API обновления, где, как это необходимо, необходимо указать идентификатор документа.

Пожалуйста, помогите мнеесли какой-либо существующий API я могу использовать или любой подход.

Спасибо

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете использовать Обновление по API запросов .

Ваш вызов будет выглядеть примерно так:

[EDIT]: обновлен этот вызов, чтобы использовать сценарий дляобновить поле костюма.

POST conn2/_update_by_query
{
  "script": {
    "inline": "ctx._source.suitename = 'TestSuite2'",
    "lang": "painless"
  },
  "query": {
    "term": {
      "suitename": "TestSuite"
    }
  }
}

Кроме того, вы также можете использовать _reindex .

POST _reindex
{
  "source": {
    "index": "conn2"
  },
  "dest": {
    "index": "new_index"
  },
  "script": {
    "source": "if (ctx._source.suitename == 'TestSuite') {ctx._source.suitename = 'TestSuite2'}",
    "lang": "painless"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...