Fixing ElasticSearch 'Unknown key for a START_ARRAY in [...].'

English Deutsch

Wenn du eine Fehlermeldung wie diese erhältst

elasticsearch_unknown_key.txt
elasticsearch.exceptions.RequestError: RequestError(400, 'parsing_exception', 'Unknown key for a START_ARRAY in [size].')

in ElasticSearch, look for the value in the [brackets]. In our example this is [size].

Deine Abfrage enthält ein Array für diesen Schlüssel, aber ein Array ist nicht zulässig.

Zum Beispiel ist diese Abfrage fehlerhaft:

es_size_array_incorrect.json
{
    "size": [10, 11]
}

weil size eine Zahl erwartet, kein Array.

In Python, wenn du dein Array programmatisch erstellst, hast du möglicherweise ein zusätzliches Komma am Ende deiner Zeile.

Zum Beispiel, wenn du eine Zeile wie diese hast

es_size_tuple_bug.py
query["size"] = 250,

dies ist nur syntactic sugar für

es_size_tuple_explicit.py
query["size"] = (250,)

d.h. es wird size auf ein Tupel mit einem Element setzen. Im JSON wird dies zu folgendem führen

es_size_array_json.json
{
    "size": [250]
}

Um dieses Problem zu beheben, entferne das Komma am Ende der Zeile

es_size_fix.py
query["size"] = 250

was zur korrekten Abfrage-JSON führen wird

es_size_correct.json
{
    "size": 250
}

Check out similar posts by category: Databases, ElasticSearch