2016-07-13 28 views
3

Elasticsearchで新しく作成されたインデックスを使用して、デフォルトの圧縮方法をbest_compressionに設定する方法はありますか?Elasticsearchインデックスへの圧縮

明らかに、インデックス作成後に手動で行うことができます。

Google検索に基づいて、これはelasticsearch.ymlに設定するか、カスタムテンプレートを作成して設定することで達成できます。しかし、私はelasticsearch.ymlで正しく取得できませんでした。私はさまざまなバリエーションを試しましたが、基本的にこれを行う必要があります:

index.codec: best_compression 

しかし、そうではありません。

私の目標は、特定のテンプレートを使用して作成されたものだけでなく、すべてのインデックスにこの圧縮を適用することなので、カスタムテンプレートを作成するのも面倒です。しかし、それが唯一の方法ならば、そうしてください。

私の使用例は、Logstashを使用したElasticsearchです。したがって、Logstashはこれらのインデックスの作成者です。カスタムテンプレートがなければ、Logstash設定で圧縮方法を設定することは完全に不可能と思われます。私はElasticsearchバージョン2.2.0を実行しています。

curl -XPUT 'http://localhost:9200/example_index/_settings' -d '{"index":{"codec":"best_compression"}}' 

をそしてインデックスを再オープン:

現在、私は、インデックスを閉鎖し、実行した後に手動でうまく圧縮を設定することができます。

公式ドキュメントから:

index.codec 

デフォルト値はLZ4圧縮と格納されたデータを圧縮するが、 これは遅いの費用で、より高い 圧縮比についてDEFLATEを使用するbest_compressionに設定することができますフィールドのパフォーマンスが格納されます。

出典:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html

答えて

3

index.codec設定は、ノード・レベルの設定であり、それは新しいインデックスの設定の一覧には表示されません。インデックステンプレートがの場合、具体的にはに設定してcodecとすると、そのテンプレートが使用されます。そうでない場合、ノードレベルのテンプレートが使用されます。

また、インデックスのコーデックを変更すると、新しいセグメント(新しいインデックス作成後、既存のドキュメントまたはセグメントのマージに変更が加えられた場合)のみが新しいコーデックを使用します。

+0

ええ、私はコーデックの変更が遡及的ではないことを知っていましたが、変更されたコーデックがノードレベルで実行されているとインデックス設定に表示されないということは実際には起こりませんでした。 しかし、はい、それは可視ノードの設定で表示されない: 'カール-XGET「のhttp:// localhostを:9200/_nodes先端のためにかなり= true'' だから、感謝?。 :) – empe