DBAtlas · Atlas de operaciones de bases de datos

illegal_argument_exception_total_fields: Limit of total fields has been exceeded

Elasticsearch

¿Qué significa?

El número total de campos del mapping de un índice superó el límite superior permitido (index.mapping.total_fields.limit, 1000 por defecto). La indexación falla porque no se pueden añadir campos nuevos.

¿Por qué ocurre?

Normalmente es una explosión de mapping: con el dynamic mapping habilitado, los documentos JSON no estructurados/con claves variables (p. ej., objetos cuyas claves proceden de datos de usuario) añaden cada campo nuevo al mapping. Con el tiempo el número de campos crece rápidamente y alcanza el límite.

Cómo solucionarlo

Para corregir la causa raíz, modele los datos con claves variables con un campo flattened o como un array de pares clave-valor en lugar de objetos; restrinja el dynamic mapping (dynamic: false o strict). Si realmente necesita más campos, suba el límite con cuidado: PUT idx/_settings {"index.mapping.total_fields.limit": 2000}. Vigile la explosión de mapping revisando el número de campos con GET idx/_mapping.

Abrir en DBAtlas →

Más entradas de este motor