Mi trovo di fronte a un problema strano con Elasticsearch. La mia mappatura specifica che un certo campo è di tipo long
. Ora accidentalmente stavo cercando di indicizzare alcuni documenti che avevano il tipo string
per quel campo invece di long
. Non ricevevo errori da Elasticsearch, ma i documenti non sono mai stati indicizzati. Quando ho risolto il problema, i documenti sono stati indicizzati correttamente.Elasticsearch fallisce in modo silenzioso se il documento ha una mancata corrispondenza di mappatura per un campo
Esempio:
mio mappatura:
{
"field1": {
"type": "long"
}
}
Quando invio questo documento non riesce in silenzio:
{
"field1": "this is a string"
}
Quando invio questo funziona come previsto:
{
"field1": 12345
}
C'è un modo per rilevare questo tipo di errori?
Puoi condividere la risposta che si stanno ottenendo indietro da elasticsearch quando si dispone di questo fallimento indice in silenzio? –
probabilmente hai il flag [ignore_malformed] (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#mapping-settings) impostato su true a livello globale. potresti fornire un documento di esempio indicizzato che ha causato un errore silenzioso, anche la versione di elasticsearch. – keety
Vedere la mia domanda aggiornata per un esempio. Penso che la bandiera che hai appena menzionato potrebbe essere ciò che stavo cercando. L'unico problema è che questo ignorerebbe il campo malformato ma indicizzerebbe comunque il resto del documento, il che non mi va bene dato che quel campo è richiesto. Mi piacerebbe che fallisse e restituire un errore se tenta di indicizzare un campo non valido. C'è un modo per farlo? –