映射限制设置
编辑映射限制设置
编辑使用以下设置来限制字段映射的数量(手动创建或动态创建),并防止文档导致映射爆炸。
-
index.mapping.total_fields.limit
-
索引中字段的最大数量。字段和对象映射,以及字段别名都计入此限制。映射的运行时字段也计入此限制。默认值为
1000
。设置此限制是为了防止映射和搜索变得过大。较高的值可能会导致性能下降和内存问题,尤其是在负载较高或资源较少的集群中。
如果您增加此设置,我们建议您也增加
indices.query.bool.max_clause_count
设置,该设置限制查询中子句的最大数量。如果您的字段映射包含大量任意的键,请考虑使用 flattened 数据类型,或将索引设置
index.mapping.total_fields.ignore_dynamic_beyond_limit
设置为true
。 -
index.mapping.total_fields.ignore_dynamic_beyond_limit
- 此设置确定当动态映射的字段超出总字段限制时会发生什么。当设置为
false
(默认值)时,尝试向映射添加动态字段的文档的索引请求将失败,并显示消息超出总字段限制 [X]
。当设置为true
时,索引请求不会失败。相反,超出限制的字段不会添加到映射中,类似于dynamic: false
。未添加到映射中的字段将添加到_ignored
字段中。默认值为false
。 -
index.mapping.depth.limit
- 字段的最大深度,以内部对象的数量来衡量。例如,如果所有字段都在根对象级别定义,则深度为
1
。如果有一个对象映射,则深度为2
,以此类推。默认值为20
。
-
index.mapping.nested_fields.limit
- 索引中不同的
nested
映射的最大数量。nested
类型只应在特殊情况下使用,即需要彼此独立地查询对象数组时。为了防止设计不佳的映射,此设置限制了每个索引中唯一nested
类型的数量。默认值为50
。
-
index.mapping.nested_objects.limit
- 单个文档在所有
nested
类型中可以包含的最大嵌套 JSON 对象数量。此限制有助于防止当文档包含太多嵌套对象时出现内存不足错误。默认值为10000
。 -
index.mapping.field_name_length.limit
- 字段名称的最大长度的设置。此设置实际上不是解决映射爆炸的问题,但如果您想限制字段长度,它可能仍然有用。通常不需要设置此设置。除非用户开始添加大量名称很长的字段,否则默认值是可以的。默认值为
Long.MAX_VALUE
(无限制)。 -
index.mapping.dimension_fields.limit
- (动态,整数)索引的 时间序列维度 的最大数量。默认为
32768
。