DBAtlas · Atlas für Datenbankbetrieb

illegal_argument_exception_total_fields: Limit of total fields has been exceeded

Elasticsearch

Was bedeutet das?

Die Gesamtzahl der Felder in einem Index-Mapping hat die erlaubte Obergrenze überschritten (index.mapping.total_fields.limit, Standard 1000). Die Indizierung schlägt fehl, weil keine neuen Felder hinzugefügt werden können.

Ursache

Meist eine Mapping Explosion: Bei aktiviertem Dynamic Mapping fügen unstrukturierte JSON-Dokumente mit variablen Schlüsseln (z. B. Objekte, deren Schlüssel aus Benutzerdaten stammen) jedes neue Feld dem Mapping hinzu. Mit der Zeit wächst die Feldanzahl rasch und erreicht das Limit.

Lösung

Um die Grundursache zu beheben, modelliere Daten mit variablen Schlüsseln mit einem flattened-Feld oder als Array von Schlüssel-Wert-Paaren statt als Objekte; schränke Dynamic Mapping ein (dynamic: false oder strict). Brauchst du wirklich mehr Felder, erhöhe das Limit mit Bedacht: PUT idx/_settings {"index.mapping.total_fields.limit": 2000}. Überwache Mapping Explosions, indem du die Feldanzahl mit GET idx/_mapping prüfst.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank