2015-03-04 1 views
4

Я новичок в поиске Elasticsearch. Я создал индекс с несколькими подтипами.Обновление типа поля от 'date' до 'string' в elasticsearch

{ 
"rkb_search_v3": { 
    "mappings": { 
     "event": { 
      "properties": { 
       "description": { 
        "type": "string" 
       } 
       "start_date": { 
        "type": "date", 
        "format": "dateOptionalTime" 
       }, 
       "title": { 
        "type": "string" 
       } 
      } 
     } 
    } 
} 
} 

Я хочу обновить start_date типа в строку, как я не могу искать через него, он дает ошибку [error] => SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[4VaJ1zHkSsOaYid7rz6Ciw][rkb_search_v3][0]: SearchParseException[[rkb_search_v3][0]: from[-1],size[100]

я пытаюсь обновить его с помощью почтальона, следуя методу

PUT localhost:9200/rkb_search_v3/_mapping/event

{ 
    "properties": { 
     "start_date": { 
      "type": "string" 
      } 
     } 
    } 
} 

но не обновляется. пожалуйста помоги.

P.S.:Event тип имеет данные, индексированные в нем.

+0

Вы здесь неправильно решаете проблему. Предполагается, что 'start_date' имеет тип' date'. Можете ли вы опубликовать запрос, который не прошел? Вы должны попытаться исправить запрос здесь вместо индекса. – bittusarkar

ответ

1

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

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html

+0

на всякий случай, я также не смог обновить, когда в нем не было данных. Можете ли вы указать мне, что – dhpratik

Смежные вопросы