2015-02-27 12 views
5

Utilizzo Sense (plug-in Chrome) e sono riuscito a configurare un analizzatore e funziona correttamente. Se si rilascia un GET (/ media/_settings) sulle impostazioni, viene restituito quanto segue.Aggiornamento dell'analizzatore nelle impostazioni di ElasticSearch

{ 
    "media": { 
     "settings": { 
     "index": { 
      "creation_date": "1424971612982", 
      "analysis": { 
       "analyzer": { 
        "folding": { 
        "filter": [ 
         "lowercase", 
         "asciifolding" 
        ], 
        "tokenizer": "standard" 
        } 
       } 
      }, 
      "number_of_shards": "5", 
      "uuid": "ks98Z6YCQzKj-ng0hU7U4w", 
      "version": { 
       "created": "1040499" 
      }, 
      "number_of_replicas": "1" 
     } 
     } 
    } 
} 

Sto cercando di aggiornarlo nel modo seguente:

chiusura l'indice

questo comando PUT (rimozione di un filtro)

PUT /media/_settings 
{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "folding": { 
      "tokenizer": "standard", 
      "filter": [ "lowercase" ] 
     } 
     } 
    } 
    } 
} 

apertura l'indice

Ma quando le impostazioni tornano, il filtro non viene rimosso. Non puoi aggiornare un analizzatore dopo averlo creato?

risposta

6

Risposta breve: No.

Longer risposta. Dalla documentazione ES:

"Anche se è possibile aggiungere nuovi tipi ad un indice, o aggiungere nuovi campi a un tipo , non è possibile aggiungere nuovi analizzatori o apportare modifiche ai campi esistenti Se si dovesse. fare così, i dati che erano già stati indicizzati sarebbero errati e le tue ricerche non funzionerebbero più come previsto. "

Il modo migliore è creare un nuovo indice e spostare i dati. Alcuni client dispongono di helper per farlo, ma non fanno parte del client Java standard.

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

+0

sospettavo che, questo mi aiuterà anche se - http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index-aliases.html –

+1

Che non vi aiuterà con il movimento dei dati, dovrai comunque scrivere qualcosa per spostare le cose da a a b, prima di rimappare il tuo alias su b. Se sei in Scala https://github.com/sksamuel/elastic4s ha un aiuto per questo. – monkjack

+0

Sì, scusa, dovrei essere più esplicito. In sostanza, dal primo giorno, dovresti utilizzare un alias per il tuo indice e puoi utilizzare l'API di scansione e scorrimento e bulk per inserire i tuoi dati se devi apportare delle modifiche, è ciò che sto ottenendo dalle tue risposte e dalla documentazione. –

Problemi correlati