/ / Il valore vuoto genera mapper_parsing_exception per il campo suggester di completamento di Elasticsearch - elasticsearch, filtro, autosuggest, completamento

Il valore vuoto genera mapper_parsing_exception per il campo suggerimento completamento Elasticsearch - elasticsearch, filtro, autosuggest, completamento

Ho un name campo che è un suggeritore di completamento e l'indicizzazione genera a mapper_parsing_exception errore, affermando value must have a length > 0.

Ci sono davvero alcuni valori vuoti in questo campo. Come li accetto?

ignore_malformed non ha avuto alcun effetto, neanche al properties o index livello.

Ho provato a filtrare le stringhe vuote nell'analizzatore, impostando una lunghezza minima:

PUT /genes
{
"settings": {
"analysis": {
"filter": {
"remove_empty": {
"type": "length",
"min": 1
}
},
"analyzer": {
"keyword_lowercase": {
"type": "custom",
"tokenizer": "keyword",
"filter": [
"lowercase",
"remove_empty"
]
}
}
}
},
"mappings": {
"gene": {
"name": {
"type": "completion",
"analyzer": "keyword_lowercase"
}
}
}
}
}

O filtra stringhe vuote come stopword:

    "remove_empty": {
"type": "stop",
"stopwords": [""]
}

Il tentativo di applicare un filtro alla mappatura dei nomi genera un errore di parametro non supportato:

"mappings": {
"gene": {
"name": {
"type": "completion",
"analyzer": "keyword_lowercase",
"filter": "remove_empty"
}
}
}
}

Questo sembra che dovrebbe essere semplice. C'è un modo per fare questo?

Grazie!

risposte:

1 per risposta № 1

Ho affrontato lo stesso problema. Dopo alcune ricerche, mi sembra che attualmente l'unica opzione sia quella di modificare i dati (ad es. Sostituire valori vuoti con alcuni valori fittizi non vuoti) prima indicizzazione.

Ma ci sono anche buone notizie. Questa edizione esiste su GitHub ed era risoluto circa un mese fa. È previsto il rilascio nella versione 6.4.0.