Pippi Life

主に仕事に関連するITのことや、プライベートもちょいちょい書きます。

ElasticsearchのDynamicTemplateのメモ

Elasticsearchを使う機会があって、 DynamicTemplateを使用したので、そのときのメモです。 メモなので雑です。

DynamicTemplateは、elasticseachにデータをアップロードする際、 elasticseachが自動でフィールドの型設定をしてくれるのですが、 特定の文字列にマッチする場合に、適用する設定のことです。

つまり 「このindexに、この名前でデータがアップロードされたら、こうしてね」 ということですね。

「path_to_apply*の中にある、「text*」に該当するものは日本語解析可能にする」 という設定のjson

{
  "template": "path_to_apply*",
  "settings": {
    "index": {
      "analysis": {
        "tokenizer": {
          "kuromoji_user_dict": {
            "type": "kuromoji_tokenizer",
            "mode": "serach"
          }
        }
      }
    }
  },
  "mappings": {
    "_default_": {
      "dynamic_templates": [
        {
          "named_analyzers": {
            "match_mapping_type": "string",
            "match": "text_*",
            "mapping": {
              "fielddata": true,
              "analyzer": "kuromoji",
              "fields": {
                "keyword": {
                  "type": "keyword"
                }
              }
            }
          }
        }
      ]
    }
  }
}

以下のコマンドで適用します。

$ curl -X PUT 'endpoint:port/_template/path_to_apply' -d @mapping_template.json

Qiita記事はこちら