Limit of total fields [1000] in index has been exceeded

Don't make so many fields. Personally I don't like dynamic mapping. I set "dynamic": false which will store new fields but not index them. Then I can carefully decide which fields to add. Other folks with other use cases like "dynamic": "strict" which will reject changes that add new fields.

The usual strategies for making fewer fields is to combine similar ones or to use key/value objects and nested fields. key/value objects with nested fields are much slower to query than regular fields, but they don't have the sparsity storage problems. I prefer to try and lay out the data not to have so many fields. But I don't know your use case so I can't really give you any hints on how to do that.