emp*_*mpe 6 compression elasticsearch
有没有办法在Elasticsearch中使用新创建的索引将默认压缩方法设置为best_compression?
显然,它可以在创建索引后手动完成.
基于谷歌搜索,这应该可以通过在elasticsearch.yml中设置,或通过创建自定义模板来设置它.但是,我无法在elasticsearch.yml中找到它.我尝试了各种各样的变化,但基本上应该这样做:
index.codec: best_compression
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
我也不习惯创建自定义模板,因为我的目标是将压缩扩展到所有索引,而不仅仅是使用某些特定模板创建的索引.但如果这是唯一的方式,那就这样吧.
我的用例是带有Logstash的Elasticsearch,因此Logstash是这些索引的创建者.如果没有自定义模板,在Logstash配置中设置压缩方法似乎完全不可能.我正在运行Elasticsearch 2.2.0版.
目前我可以在关闭索引并执行后手动设置压缩:
curl -XPUT 'http://localhost:9200/example_index/_settings' -d '{"index":{"codec":"best_compression"}}'
Run Code Online (Sandbox Code Playgroud)
然后重新打开索引.
从官方文件:
index.codec
Run Code Online (Sandbox Code Playgroud)
默认值使用LZ4压缩压缩存储的数据,但这可以设置为best_compression,它使用DEFLATE获得更高的压缩比,但代价是存储的字段性能较慢.
资料来源:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html
该index.codec
设置是节点级别设置,在新索引的设置列表中不可见。如果索引模板专门设置了,codec
那么将使用该索引模板,否则将使用节点级别的索引模板。
此外,当更改索引的编解码器时,只有新段(在新索引之后、对现有文档的更改或段合并)才会使用新编解码器。