Обновление по запросу не работает, эластичный поисковый питон - PullRequest
0 голосов
/ 31 мая 2019

У меня около 2000+ документов с именем файла «Contact.txt», я пытаюсь изменить поле с именем text: {class: 'contact'} для всех этих файлов, выполнив следующие действия:

    q = {
        "script": {
            "inline": "ctx._source.text.class='contact'",
            "lang": "painless"
        },
        "query": {
            "match": {
                "name": "Contact.txt"
            },

        }
    }

    try:
        es.update_by_query(body=q, index='index_name')
    except Exception as e:
        print(e)

Моя попытка / вылов дает мне ошибку:

TransportError(500, 'script_exception', 'runtime error')

1 Ответ

1 голос
/ 31 мая 2019

Поле text не существует в документах, поэтому сценарий обновления должен выглядеть следующим образом:

{
  "script": {
    "source": "ctx._source['text'] = params.text",
    "params": {
      "text": {
        "class": "contact"
      }
    },
    "lang": "painless"
  },
  "query": {
    "match": {
      "name": "Contact.txt"
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...