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

Мне нужно обновить поле в документах, индексированных к Elasticsearch. Как я могу это сделать.

"redcash_sale": {
"type": "object"
}

обновить поле выше до нижнего (сделать включение ложным): -

sale_property_development_j/_mapping/property

{
  "properties": {
    "redcash_sale": {
      "type": "object",
      "enabled": false
    }
  }
}

ошибка повышения при повторном отображении наasticsearch: -

Ошибка

{
"error": {
"root_cause": [
{
"type": "mapper_exception",
"reason": "Can't update attribute for type [_doc.redcash_sale.enabled] in index mapping"
}
],
"type": "mapper_exception",
"reason": "Can't update attribute for type [_doc.redcash_sale.enabled] in index mapping"
},
"status": 500
}

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

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Что вы можете сделать, это _reindex ваши данные в индексе dest, удалить исходную и затем _reindex снова в исходную с новым отображением.

Переиндексирование:

POST _reindex   
{
  "source": {
    "index": "sale_property_development_j"
  },
  "dest": {
    "index": "new_sale_property_development_j"
  }
}

Удалить исходный индекс:

DELETE sale_property_development_j

Создать запрошенное сопоставление:

PUT sale_property_development_j
{
   "mappings":{
     "property":{
       "properties": {
         "redcash_sale": {
           "type": "object",
           "enabled": false
          }
       }
     }
  }
}

Переиндексировать еще раз:

POST _reindex?wait_for_completion=false    
{
  "source": {
    "index": "new_sale_property_development_j"
  },
  "dest": {
    "index": "sale_property_development_j"
  }
}

Наконец:

DELETE new_sale_property_development_j

Приятно иметь решение

0 голосов
/ 31 октября 2019

Согласно: https://www.elastic.co/guide/en/elasticsearch/reference/current/enabled.html

Включено не может быть обновлено с помощью API отображений PUT.

Затем необходимо переиндексировать данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...