映射限制设置
edit映射限制设置
edit使用以下设置来限制字段映射的数量(无论是手动创建还是动态创建),并防止文档导致映射爆炸:
-
index.mapping.total_fields.limit -
一个索引中字段的最大数量。字段和对象映射,以及字段别名都计入此限制。映射的运行时字段也计入此限制。默认值是
1000。设置限制是为了防止映射和搜索变得过大。较高的值可能会导致性能下降和内存问题,特别是在负载较高或资源较少的集群中。
如果您增加此设置,我们建议您也增加
indices.query.bool.max_clause_count设置,该设置 限制查询中子句的最大数量。如果你的字段映射包含大量任意键,请考虑使用扁平化数据类型, 或者将索引设置
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 -
索引中不同
嵌套映射的最大数量。嵌套类型应仅在特殊情况下使用,当需要独立查询对象数组时。为了防止设计不良的映射,此设置限制了每个索引的唯一嵌套类型的数量。默认值为50。
-
index.mapping.nested_objects.limit -
单个文档在所有
嵌套类型中可以包含的最大嵌套JSON对象数量。此限制有助于防止当文档包含过多嵌套对象时出现内存不足错误。默认值为10000。 -
index.mapping.field_name_length.limit -
设置字段名称的最大长度。此设置并不是真正解决映射爆炸的问题,但如果您想限制字段长度,它可能仍然有用。
通常不需要设置此设置。默认值是可以的,除非用户开始添加大量具有非常长名称的字段。默认值为
Long.MAX_VALUE(无限制)。 -
index.mapping.dimension_fields.limit -
(动态, 整数)
索引的最大时间序列维度数量。默认为
32768。