2013-08-14 10 views
19

Vorrei specificare un analizzatore, denominarlo e utilizzarlo in un mapping durante la creazione di un indice. Mi sono perso, la mia istanza ES mi restituisce sempre un messaggio di errore.Come specificare un analizzatore durante la creazione di un indice in ElasticSearch

Questo è, più o meno, quello che mi piacerebbe fare:

"settings": { 
    "mappings": { 
    "alfedoc": { 
     "properties": { 
     "id": { "type": "string" }, 
     "alfefield": { "type": "string", "analyzer": "alfeanalyzer" } 
     } 
    } 
    }, 
    "analysis": { 
    "analyzer": { 
     "alfeanalyzer": { 
     "type": "pattern", 
     "pattern":"\\s+" 
     } 
    } 
    } 
} 

Ma questo non sembra funzionare; l'istanza ES mi restituisce sempre un errore come

MapperParsingException[mapping [alfedoc]]; nested: MapperParsingException[Analyzer [alfeanalyzer] not found for field [alfefield]]; 

Ho provato a mettere il ramo "analysis" del dizionario in diversi luoghi (all'interno della mappatura, ecc), ma senza alcun risultato. Immagino che un esempio completo funzionante (che non riuscivo a trovare fino ad ora) mi avrebbe aiutato anche io. Probabilmente mi manca qualcosa piuttosto di base.

risposta

27

"analisi" va nel blocco "impostazioni", che va prima o dopo il blocco "mappature" durante la creazione di un indice.

"settings": { 
    "analysis": { 
     "analyzer": { 
      "alfeanalyzer": { 
       "type": "pattern", 
       "pattern": "\\s+" 
      } 
     } 
    } 
}, 
"mappings": { 
    "alfedoc": { ... } 
} 

Ecco un buon completo, ad esempio: Example 1

+4

Sì, in effetti, ho dimenticato che lo scorso tutore in "Impostazioni". Quindi "impostazioni" e "mappature" dovrebbero essere 2 blocchi separati e "analisi" dovrebbe essere inclusa nel blocco "impostazioni". –

+0

Ottimi collegamenti agli esempi, grazie. – pulkitsinghal

+1

Grazie per i collegamenti, ho trovato quello di cui avevo bisogno! Ma il punto in cui la mappatura effettivamente specifica quali analizzatori utilizzare per una particolare proprietà è quello che ho avuto il tempo più difficile per trovare esempi di. Sarebbe una grande aggiunta alla tua risposta;) –

Problemi correlati