2013-04-30 14 views
27

I documenti ElasticSearch non sono chiari su come farlo.Come aggiornare un tipo di campo in elasticsearch

Ho indicizzato alcuni tweet e uno dei campi, created_at, indicizzato come stringa anziché come data. Non riesco a trovare come reindicizzare con questo cambiamento tramite una chiamata al ricciolo. Se la reindicizzazione è un processo complicato, preferirei semplicemente cancellare ciò che è lì e ricominciare da capo. Ma, non riesco a trovare come specificare i tipi di campo!

Qualsiasi aiuto è molto apprezzato.

risposta

23

è necessario definire una mappatura utilizzando Put Mapping AP I.

$ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d ' 
{ 
    "tweet" : { 
     "properties" : { 
      "message" : {"type" : "string", "store" : "yes"} 
     } 
    } 
} 
' 

Una data può essere definito come segue:

{ 
    "tweet" : { 
     "properties" : { 
      "user" : {"type" : "string", "index" : "not_analyzed"}, 
      "message" : {"type" : "string", "null_value" : "na"}, 
      "postDate" : {"type" : "date"}, 
      "priority" : {"type" : "integer"}, 
      "rank" : {"type" : "float"} 
     } 
    } 
} 
+0

Sì, questo è tutto. Grazie dadoonet. – maximus

+0

@dadoonet Qualsiasi modo per cambiare il tipo di messaggio "archiviato" cambia da stringa a "long" .Merge non riuscito con errori {[mapper [messaggio] di tipo diverso, current_type [stringa] – Dibish

+1

@dibish No. È necessario reindicizzare. – dadoonet

8

È inoltre necessario specificare formato non basta digitare se si inserisce un mysql timestamp quindi dovresti semplicemente aggiungere un formato come questo.

"properties": { 
    "updated_at": { 
     "type": "date", 
     "format": "yyyy-MM-dd HH:mm:ss" 
    } 
} 

Se consideriamo il vostro esempio allora dovrebbe essere come

"tweet" : { 
    "properties" : { 
     "user" : {"type" : "string", "index" : "not_analyzed"}, 
     "message" : {"type" : "string", "null_value" : "na"}, 
     "postDate" : {"type" : "date" , "format": "yyyy-MM-dd HH:mm:ss" }, 
     "priority" : {"type" : "integer"}, 
     "rank" : {"type" : "float"} 
    } 
} 
Problemi correlati