#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. Это было успешно обновлено. Я хочу подтвердить, правильно ли я поступаю.
Я попытался вставить еще несколько документов и попытался запустить вложенный запрос, и, похоже, они работают нормально. Но я хотел бы подтвердить в этом сообществе, правильно ли я использую метод обновления отображения.