Elasticsearchのデフォルト・アナライザは、二つの用語にa b
をトークン化れる、Standard tokenizerを使用して用語をトークン化します:a
とb
、デフォルトのストップワードの後にトークンフィルタは1つだけ用語b
に変換されます。テキストの解析方法を示す小さな例については、this playを参照してください。あなたが指定したこの方法を分析するために
、我々のような私たちのアナライザを設定する必要があります。
"analyzer": {
"my_id_analyzer": {
"type": "custom",
"tokenizer": "keyword",
"filters": ["lowercase"]
}
}
BYT Logstashは、通常は必要なときに、私たちはこのアナライザが利用可能です確認する必要があり、新しいインデックスを作成しますので、すべてのインデックスが作成されます。これを達成するには2つの方法があります:1)それをElasticsearchインスタンス設定(elasticsearch.yml)に追加するか、または2)アナライザを含むインデックステンプレートを作成します。
特定のインデックス(つまり、接頭辞がlogstash-
のインデックス)にのみこのアナライザが必要なためです。 Index template APIを使用することにより、我々は次の操作を行うことができます:上記のコマンドを実行した後
curl localhost:9200/_template/logstash-id -XPUT -d '{
"template": "logstash-*",
"settings" : {
"analysis": {
"analyzer": {
"my_id_analyzer": {
"type": "custom",
"tokenizer": "keyword",
"filters": ["lowercase"]
}
}
}
},
"mappings": {
"_default_": {
"properties" : {
"id" : { "type" : "string", "analyzer" : "my_id_analyzer" }
}
}
}
}'
を、このテンプレートは、その後に作成接頭logstash-
で任意のインデックスに適用され、唯一の「魔法」の部分は、追加のマッピングです指定されたインデックスの "any"型のプレースホルダーである組み込み型_default_
を使用します。これは、実際の型名にかかわらず、マッピングがどの型にも追加されることを意味します。