diff --git a/opensearch/opensearch_types.go b/opensearch/opensearch_types.go
index bfc31f425a7903e53f979044cfe7ae427928b9a4..03f14aa6d8f9efd0f0dab5ad022c73011c3a0692 100644
--- a/opensearch/opensearch_types.go
+++ b/opensearch/opensearch_types.go
@@ -7,8 +7,17 @@ type Settings struct {
 }
 
 type SettingsIndex struct {
-	NumberOfShards   int `json:"number_of_shards,omitempty"`
-	NumberOfReplicas int `json:"number_of_replicas,omitempty"`
+	NumberOfShards   int      `json:"number_of_shards,omitempty"`
+	NumberOfReplicas int      `json:"number_of_replicas,omitempty"`
+	Mapping          *Mapping `json:"mapping,omitempty"`
+}
+
+type Mapping struct {
+	TotalFields TotalFields `json:"total_fields,omitempty"`
+}
+
+type TotalFields struct {
+	Limit int `json:"limit,omitempty"`
 }
 
 type Mappings struct {
diff --git a/opensearch/time_series.go b/opensearch/time_series.go
index ffcd3f00169bb118845de87ae876ac9584a1ae18..54015d2628a1ae05dd91ff30060b45ea6138440d 100644
--- a/opensearch/time_series.go
+++ b/opensearch/time_series.go
@@ -80,6 +80,7 @@ func (w *Writer) NewTimeSeries(name string, tmpl interface{}) (TimeSeries, error
 		Index: &SettingsIndex{
 			NumberOfShards:   4,
 			NumberOfReplicas: 0,
+			Mapping:          &Mapping{TotalFields{Limit: 2000}},
 		},
 	}