私は、単一ノード上に小さなELK 5.4.0スタックサーバーを実行しています。私が始めたとき、私はちょうど各インデックスのための5つの断片を意味したすべてのデフォルトを取った。私はこれらすべての破片のオーバーヘッドをしたくなかったので、私はそうのようなインデックス・テンプレートを作成しました:これはうまく働いたElasticsearchインデックステンプレートの生の文字列マッピングが失われました。
PUT /_template/logstash
{
"template": "logstash*",
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
が、私はちょうどすべての私の生のフィールドが今ESに欠けていることに気づきました。たとえば、 "uri"は私の索引付けされたフィールドの1つであり、私は "uri.raw"を解析されていないバージョンとして取得していました。しかし、私はテンプレートを更新してから、それらは欠落しています。現在のテンプレートの表示を見る
GET /_template/logstash
Returns:
{
"logstash": {
"order": 0,
"template": "logstash*",
"settings": {
"index": {
"number_of_shards": "1",
"number_of_replicas": "0"
}
},
"mappings": {},
"aliases": {}
}
}
マッピングが欠落しているようです。私は以前、インデックス
GET /logstash-2017.03.01
オフマッピングを引くと私はマッピング構造が
mappings: {
"logs": {
"_all": {...},
"dynamic_templates": {...},
"properties": {...}
},
"_default_": {
"_all": {...},
"dynamic_templates": {...},
"properties": {...}
}
}
ようがあった月にそのバックご覧ください。ここ最近1
GET /logstash-2017.08.01
とそれを比較することができます今私はただ持っています
mappings: {
"logs": {
"properties": {...}
}
}
dynamic_templatesハッシュは、「生の」フィールドの作成に関する情報を保持します。
私の推測では、私は(logstashによってオーバー送られているフィールドの現在のリストを保持している)
PUT /_template/logstash
{
"template": "logstash*",
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"logs": {
"_all": {...},
"dynamic_templates": {...},
},
"_default_": {
"_all": {...},
"dynamic_templates": {...},
"properties": {...}
}
}
IOW、logs.properties
が、すべてに私のインデックステンプレートを更新するために追加する必要があるということです。
しかし私はES専門家ではなく、今はちょっと心配です。私の元のインデックステンプレートは、私が思ったようにうまくいかなかった。私の上の計画は働くだろうか?あるいは、私は物事を悪化させるつもりですか?あなたはいつもすべてを含める必要がありますインデックステンプレートを作成するとき?テンプレートファイルを作成する前に、古いインデックスのマッピングはどこから来たのですか?
明確な説明をありがとう!それが明確でない場合に追加する1つのメモ: ".raw"フィールドが ".keyword"フィールドに変更されました。しかし、予測どおりにすべてが機能しています! –
素晴らしい、嬉しい助けて! – Val