压缩到Elasticsearch索引

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

And*_*fan 5

index.codec设置是节点级别设置,在新索引的设置列表中不可见。如果索引模板专门设置了,codec那么将使用该索引模板,否则将使用节点级别的索引模板。

此外,当更改索引的编解码器时,只有新段(在新索引之后、对现有文档的更改或段合并)才会使用新编解码器。