Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 9077|Risposta: 0

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法

[Copiato link]
Pubblicato su 09/01/2019 10:29:11 | | | |
Motivo dell'errore

{
"errore": {
"root_cause": [
{
"tipo": "mapper_parsing_exception",
"motivo": "Nessun gestore per il tipo [stringa] dichiarato sul campo [upload_status]"
}
],
"tipo": "mapper_parsing_exception",
"motivo": "Nessun gestore per il tipo [stringa] dichiarato sul campo [upload_status]"
},
"Status": 400
}


Sto usando Elasticsearch versione 6.2.2 e quando creo i campi secondo la documentazione della scuola, uso {"type":"string", "index":"not_analyzed"}.

Analisi della causa

Dopo aver controllato l'ortografia, ho deciso di controllare la nuova versione delle funzionalità di Elasticsearch, perché avevo anche fallito nel metodo di installazione del plugin head in passato, a causa del problema della versione.
Infatti, Elasticsearch ha introdotto testo e parola chiave dalla 5.X, dove la parola chiave viene applicata a campi non segmentativi, e può corrispondere esattamente solo durante la ricerca, momento in cui la stringa è ancora conservata.

arrivato6.X rimuove completamente la stringaFinire.

A parte questoIl valore di "indice" può essere solo una variabile booleana

Soluzione alternativa

{"type":"text","index":false}

Quindi, la modifica json è la seguente:

Ma ci sono nuovi errori che sono i seguenti:

{
"errore": {
"root_cause": [
{
"tipo": "illegal_argument_exception",
"motivo": "Rifiutando l'aggiornamento della mappatura verso [restraunt] poiché la mappatura finale avrebbe più di un tipo: [record, info]"
}
],
"tipo": "illegal_argument_exception",
"motivo": "Rifiutando l'aggiornamento della mappatura verso [restraunt] poiché la mappatura finale avrebbe più di un tipo: [record, info]"
},
"Status": 400
}
Questo è dovuto a:Un cambiamento importante in Elasticsearch 6.x, dove la mappatura permette un solo tipo。 Gli indici creati in 5.x con più tipi di mappatura continueranno a essere eseguiti in Elasticsearch 6.x come prima. I tipi di mappatura saranno completamente rimossi in Elasticsearch 7.0.0.

Dopo il rilascio di Elasticsearch 7.x, il parametro in typeURL diventa opzionale. Ad esempio, indicizzare i documenti non richiede più un tipo di documento

Risorse:

https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html







Precedente:Crittografia MD5
Prossimo:Come fa il codice C# a far spegnersi, riavviare, disconnettere, bloccare, spegnere...
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com