Функция TRIM () в ElasticSearch - PullRequest
0 голосов
/ 01 ноября 2018

Использование Kibana 5.5.2. У меня 18 миллионов записей в индексе «поставщики». То, что я пытаюсь сделать с помощью приведенного ниже кода, это обрезать все пробелы в начале / конце, но я получаю следующую ошибку:

"type": "parse_exception",
"reason": "expected one of [inline], [file] or [stored] fields, but found none"

Вот код, который я использую. 'name' - это поле, которое я пытаюсь обрезать во всех 18М документах в индексе:

POST suppliers/_update_by_query
{
  "script": {
    "source": "ctx._source.name=trim(name)",
    "lang": "painless"
  }
}

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

@ Val и @ibexit. Спасибо за вашу помощь. Ответ Вэла сработал ... Я просто неправильно отформатировал его в первый раз. вот что сработало:

PUT _ingest/pipeline/trim
{
  "description" : "trims my name field",
  "processors" : [ {
      "trim" : {
        "field": "name"
      }
  } ]
}
POST suppliers/_update_by_query?pipeline=trim
0 голосов
/ 01 ноября 2018

Что вы можете сделать, это определить конвейер загрузки с trim процессором и затем использовать его в своем обновлении с помощью запроса.

Сначала определите ваш конвейер:

PUT _ingest/pipeline/trim
{
  "description" : "trims my name field",
  "processors" : [ {
      "trim" : {
        "field": "name"
      }
  } ]
}

Затем укажите это при вызове обновления по запросу:

POST suppliers/_update_by_query?pipeline=trim
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...