ElasticSearch中怎么防止Mapping爆炸

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

创新互联专注于企业全网整合营销推广、网站重做改版、盖州网站定制设计、自适应品牌网站建设、H5页面制作购物商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为盖州等各大城市提供网站开发制作服务。

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爆炸 问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


分享题目:ElasticSearch中怎么防止Mapping爆炸
文章URL:http://scyanting.com/article/igipcd.html