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"] = 250was zur korrekten Abfrage-JSON führen wird
es_size_correct.json
{
"size": 250
}Check out similar posts by category:
Databases, ElasticSearch
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow