2011-10-19 13 views
8

Come posso memorizzare le impostazioni elasticsearch + mappature in un file (come schema.xml per Solr)? Attualmente, quando voglio apportare una modifica alla mia mappatura, devo cancellare le mie impostazioni di indice e ricominciare. Mi sto perdendo qualcosa?Come posso memorizzare le impostazioni elasticsearch + mappature in un file (come schema.xml per Solr)

Non ho un set di dati di grandi dimensioni al momento. Ma in preparazione di una grande quantità di dati che verranno indicizzati, mi piacerebbe essere in grado di modificare le impostazioni e alcuni come reindex senza iniziare completamente fresco ogni volta. È possibile e se sì, come?

risposta

16

Queste sono domande multiple travestite da uno. Tuttavia:

Come è possibile memorizzare le impostazioni elasticsearch + mapping in un file (come schema.xml per Solr)?

In primo luogo, si noti, che non hanno per specificare la mappatura per un sacco di tipi, come date, numeri interi, o anche le stringhe (quando l'analizzatore di default è OK per voi).

È possibile memorizzare le impostazioni e le mappature in vari modi, in elasticsearch < 1.7:

  1. Nella principale elasticsearch.yml file
  2. in un indice template file
  3. In un separate file with mappings

Attualmente, quando voglio apportare una modifica alla mia mappatura, devo cancellare le mie impostazioni dell'indice e ricominciare. Mi sto perdendo qualcosa?

È necessario reindicizzare i dati quando si modifica la mappatura per un campo esistente. Una volta che i tuoi documenti sono indicizzati, il motore deve reindicarli, per utilizzare la nuova mappatura.

Nota, che è possibile update index settings, in casi specifici, ad esempio number_of_replicas, "al volo".

Mi piacerebbe essere in grado di modificare le impostazioni e alcuni come reindex senza iniziare completamente fresco ogni volta. È possibile e se sì, come?

Come detto: si necessario reindicizzare i documenti, se si desidera utilizzare una nuova mappatura per loro.

Se si aggiunge, non si modifica la mappatura, è possibile aggiornare i mapping e i nuovi documenti lo rilevano quando vengono indicizzati.

+0

Siamo spiacenti per le domande multiple. Era tutto uno scenario per me dal momento che non avevo capito il re-index senza avviare l'intero processo. Grazie per la risposta. Attualmente sto modificando i mapping in modo specifico utilizzando i tokenizer NGram e edgeNGram e, nel tentativo di ottenere il giusto, ho dovuto riscriverli. – jbattle

+0

Ho inserito le mie mappature + impostazioni all'interno di uno script di shell in modo da rendere la creazione e la configurazione del mio indice un processo più veloce. – jbattle

+0

Sì, nella maggior parte degli scenari, ha senso avvolgere la creazione dell'indice in una procedura personalizzata (potrebbe essere script di shell, metodo di classe in Ruby, ecc.). Volevo solo indicare molti modi in cui ElasticSearch ti offre di "avvolgere" la logica di mappatura/impostazioni a livello di motore di ricerca. – karmi

0

Dal elasticsearch 2.0:

Non è più possibile specificare le mappature dei file contenuti nella directory config.

trovare il link di documentazione here.

Non è inoltre possibile memorizzare modelli di indice all'interno della posizione di configurazione (path.conf) nella directory templates.

Il path.conf (/etc/default/elasticsearch per impostazione predefinita su Ubuntu) memorizza ora solo le variabili di ambiente inclusa la dimensione dell'heap, i descrittori di file.

È necessario creare i modelli con curl.

Se sei davvero disperato, puoi creare gli indici e quindi eseguire il backup della directory data e utilizzarla come "modello" per i nuovi cluster Elasticsearch.

Problemi correlati