2016-03-21 15 views
8

Desidero aggiungere alcune proprietà aggiuntive ai miei mapping, in questo caso specifico, desidero modificare un campo titolo nel mio indice inglese in modo che utilizzi l'analizzatore inglese.Imposta update_all_types su true su ElasticSearch

Dovrebbe essere piuttosto semplice, tranne che ho un campo titolo in alcuni tipi, e sembra che non sia possibile farlo.

L'errore che ho è il seguente: Set update_all_types su true per aggiornare [search_quote_analyzer] per tutti i tipi]

ma io non sono in grado di trovare un unico riferimento su come o dove impostare questo 'update_all_types. parametro.

Questo è il codice molto semplice che uso in senso:

PUT /my_index/_mapping/my_type 
    { 
     "properties": { 
     "title": { 
      "type": "string", 
      "analyzer": "english" 
     } 
     } 
    } 

Così, come posso fare questo lavoro se lo stesso campo viene utilizzato in altri tipi?

Questo è il messaggio di errore:

"type": "illegal_argument_exception", 
"reason": "Mapper for [title] conflicts with existing mapping in other types: 
    [mapper [title] has different [analyzer], mapper [title] is used by 
    multiple types. Set update_all_types to true to update [search_analyzer] 
    across all types., mapper [title] is used by multiple types. Set 
    update_all_types to true to update [search_quote_analyzer] across 
    all types.]" 

così sembra che ho bisogno di impostare 'update_all_types: true' da qualche parte, ma la documentazione non riesce su quella parte.

+0

Se si utilizza la funzionalità di ricerca nel documentazione, atterrerai sulla [pagina corretta] (https://www.elastic.co/guide/en/elasticsearch/reference/2.2/indices-put-mapping.html#merging-conflicts) ;-) – Val

+0

Ouch , sembra che abbia trascurato quello. Ad ogni modo, non sembra funzionare come adesso ho un errore diverso, aggiornerò il post originale – Wokoman

+0

Molto probabilmente il campo 'title' nell'altro tipo ha già un analizzatore diverso (cioè non lo stesso di l'analizzatore di 'title' nel tipo' my_type'). Possibile? Puoi mostrare l'output di 'GET my_index'? – Val

risposta

6

È possibile trovare la documentazione here!

Il update_all_types è un parametro get per dare così: PUT my_index/_mapping/type_one?update_all_types

1

ho avuto un problema simile, provare il codice qui sotto per aggiornare tutti i tipi:

PUT /my_index/_mapping/my_type?update_all_types 
    { 
     "properties": { 
     "title": { 
      "type": "string", 
      "analyzer": "english" 
     } 
     } 
    } 
Problemi correlati