Elasticsearch обновляет значение поля документа от целого числа до строки - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть индекс эластичного поиска, где одно из полей сопоставлено с типом данных ключевого слова, что означает, что поле будет принимать все типы данных. Таким образом, я получил строковые и целочисленные значения в одно и то же поле индекса эластичного поиска

Теперь я хотел бы обновить все целочисленные значения до строки

Например: Документ

{
    "_index": "my-index",
    "_type": "my_index_doc",
    "_id": "PqLbOW4BtJ-51rS9hMsm",
    "_score": null,
    "_source": {
        "user_id": 1019407,
    },
    "sort": [
        1572928717850
    ]
}

Поэтому я хотел бы изменить данные всех документов, где поле user_id является целымзатем его значение в строку, как показано ниже

Ожидаемый документ:

{
    "_index": "my-index",
    "_type": "my_index_doc",
    "_id": "PqLbOW4BtJ-51rS9hMsm",
    "_score": null,
    "_source": {
        "user_id": "1019407",
    },
    "sort": [
        1572928717850
    ]
},

Можем ли мы сделать это с помощью эластичного поискового запроса на обновление для всех документов / любого другого решения?

Извините, если есть какие-либо ошибки.

Заранее спасибо

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете использовать Обновление по API запросов для достижения этой цели. Просто запустите это:

POST my-index/_update_by_query
{
  "script": {
    "source": "ctx._source.user_id = Integer.toString(ctx._source.user_id);",
    "lang": "painless"
  },
  "query": {
    "match_all": {}
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...