Как обновить тип поля в маппинге elasticsearch?
Разочарую - мапинг обновить нельзя! Можно только добавлять новые поля.
Ваши действия - делаем новый индекс с правильным мапингом до заливки данных в этот индекс, переливаем туда старые данные, например через _reindex api - https://www.elastic.co/guide/en/elasticsearch/refe...
И да, агрегации с разными типами одного поля работать не будут.
Как создать мапинг? Отдельная песнь - описана в подробностях здесь - https://www.elastic.co/guide/en/elasticsearch/refe...
Обычно делается перед заливкой данных. Там еще кроме мапинга есть settings - отже отдельная песнь.
В общем, вопрос решил немного иначе (самый простой и действенный пока).
Так как у меня все индексы создаются по типовым маппингам, которые, почему-то не хавались лишь 1 индексом, то удалось решить проблему через _template.
1. Перед созданием индекса создал шаблон с темплейтом template: "rguu*" и своим "типовым" мапингом.
2. Далее создал индекс rguu_10 (уже 10ая попытка).
3. Для теста залил несколько проблемных типов индекса.
Только такая ситуация смогла создать адекватный индекс и маппинг "подцепился".