elasticsearch常见配置问题总结

elasticsearch常见配置问题总结

ES内存大小的调整

修改elasticsearch安装目录下的config/jvm.options的参数

-Xms16g
-Xmx16g

elasticsearch默认字段大小的修改

ES单个索引的默认字段大小为1000,但是在某些情况下需要对它的字段上限值进行调整,方法为:

PUT zxy_kuan_test1(该参数为索引名)/_settings
{
 "index.mapping.total_fields.limit" : 2100(该数值为要设定的字段的数值)
}

ES sql查询索引因为数据太多导致查询错误

若错误形式为如下的形式:

{
 "error": {
 "root_cause": [
 {
 "type": "illegal_argument_exception",
 "reason": "Trying to retrieve too many docvalue_fields. Must be less than or equal to: [100] but was [158]. This limit can be set by changing the [index.max_docvalue_fields_search] index level setting."
 }
 ],

该错误是因为界面所允许的显示结果有限,如果查询返回值过多则会导致返回上述错误。解决方法为:

PUT gpdb_kuan_1(该值为索引名)/_settings
{
 "index.max_docvalue_fields_search":2000000000
}

elasticsearch在创建索引时常用的setting配置

index.mapping.total_fields.limit
索引中的最大字段数。字段和对象映射以及字段别名都计入此限制。默认值为1000。
index.mapping.depth.limit
字段的最大深度,以内部对象的数量来衡量。例如,如果所有字段都在根对象级别定义,则深度为1.如果有一个对象映射,则深度为2,等等。默认值为20。
index.mapping.nested_fields.limit
索引中嵌套字段的最大数量,默认为50.索引1个包含100个嵌套字段的文档实际上索引101个文档,因为每个嵌套文档都被索引为单独的隐藏文档。
index.mapping.nested_objects.limit
跨所有嵌套字段的单个文档中嵌套json对象的最大数量,默认为10000.在嵌套字段中使用100个对象的数组索引一个文档,实际上将创建101个文档,因为每个嵌套对象将作为单独的索引编制索引隐藏文件。
index.mapping.field_name_length.limit
设置字段名称的最大长度。默认值为Long.MAX_VALUE(无限制)。此设置实际上不是解决映射爆炸的问题,但如果要限制字段长度,则可能仍然有用。通常不需要设置此设置。默认是可以的,除非用户开始添加大量具有真正长名称的字段。
动态mappingedit
在使用之前不需要定义字段和映射类型。由于动态映射,只需索引文档即可自动添加新的字段名称。可以将新字段添加到顶级映射类型,内部对象和嵌套字段。

你可能感兴趣的:(elasticsearch,大数据)