千家信息网

ElasticSearch中怎么防止Mapping爆炸

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,ElasticSearch中怎么防止Mapping爆炸 ,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1 故事背景某天同事跟我说,E
千家信息网最后更新 2024年11月20日ElasticSearch中怎么防止Mapping爆炸

ElasticSearch中怎么防止Mapping爆炸 ,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1 故事背景

某天同事跟我说,ES数据不能进行插入,查询集群日志

requests java.lang.IllegalArgumentException: Limit of total fields [1000] in index [my_index] has been exceeded

2 Mapping 说明

mapping 做了映射保护,防止mapping 爆炸

以下设置允许您限制可手动或动态创建的字段映射的数量,以防止错误的文档导致映射爆炸:

index.mapping.total_fields.limit:

索引中的最大字段数。默认值为1000

index.mapping.depth.limit:

字段的最大深度,以内部对象的数量来衡量。例如,如果所有字段都是在根对象级别定义的,则深度为1。如果有一个对象映射,则深度为 2,等等。默认值为20。

index.mapping.nested_fields.limit

nested索引中的最大字段数,默认为50。使用100个嵌套字段索引1个文档实际上索引101个文档,因为每个嵌套文档都被索引为单独的隐藏文档

3 临时解决方案修改setting

PUT my_index/_settings{    "index.mapping.total_fields.limit": 2000}

关于ElasticSearch中怎么防止Mapping爆炸 问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0