Добавьте новое поле типа, вложенное в существующий индекс эластичного поиска

#elasticsearch

Вопрос:

У меня есть индекс elasticsearch с отображением следующим образом:

 {
  "myindex": {
    "mappings": {
      "properties": {
        "history": {
          "properties": {
            "name": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "timestamp": {
              "type": "date"
            }
          }
        }
      }
    }
  }
}
 

Теперь я хочу написать запрос на поле истории, которое представляет собой массив, такой, что имя=»abc», но метка времени < ‘2021-01-01’, но это может дать неправильные результаты, так как тип поля не вложен, как описано здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html

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

Следовательно, я создал новое поле в отображении и определил его как вложенное:

ПОЛОЖИТЬ https://endpoint/myindex/_mapping/_doc?include_type_name=true

 {
    "properties": {
      "historyNested": {
        "type": "nested" 
      }
    }
}
 

Я использую elasticsearch 7. Это было успешно обновлено. Я хочу подтвердить, правильно ли я поступаю.

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