题记
Elasticsearch 社区有大量关于 Elasticsearch 错误和异常的问题。app
深挖这些错误背后的缘由,把常见的错误积累为本身的实战经验甚至是工具,不只能够节省咱们的开发和运维时间,并且能够帮助确保 Elasticsearch 集群的长期健康运行。运维
常见的异常、缘由和常规最佳实践拆解以下,这些最佳实践能够帮助咱们更有效地识别、最小化定位和处理异常问题。工具
一、 Mapper_parsing_exception
Elasticsearch 依靠映射(Mapping)定义的数据类型处理数据。spa
映射定义了文档中的字段并指定了它们对应的数据类型,例如日期类型 Date、长整数类型 long 和 字符串类型 text。code
若是索引文档包含没有定义数据类型的新字段,Elasticsearch将使用动态映射来估计字段的类型,并在必要时将其从一种类型转换为另外一种类型。索引
若是Elasticsearch没法执行此转换,它将引起“ mapper_parsing_exception没法解析” 异常。开发
若是此类异常太多会下降索引吞吐量。文档
实战举例以下:字符串
DELETE mytest_0001 PUT mytest_0001/_doc/1 { "name":"John" } PUT mytest_0001/_doc/2 { "name": { "firstname": "John", "lastname": "doe" } }
为避免此问题,能够在建立索引时显示定义Mapping,明确敲定字段类型。或者能够使用 _mapping 动态添加新字段映射。it
动态更新索引实战:
PUT mytest_0001/_mapping { "properties": { "title": { "type": "text" } } }
请注意:虽然能够经过如上命令动态添加字段,可是不能更改现有字段映射。