索引模板(Index templates)

为什么需要索引模板?

    在实际工作中,针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(settings和mappings)的话就很麻烦了。所以,这个时候,就存在创建索引模板的必要了。

    索引可以使用预定义的模板进行创建,这个模板称作Index templates。

    模板设置包括settings和mappings,通过模式匹配的方式使得多个索引重用一个模板。

1. settings主要作用于index的一些相关配置信息,如分片数、副本数,tranlog同步条件、refresh等。

2. mappings主要是一些说明信息,大致又分为_all、_source、prpperties这三部分:

获取模板

GET _template/feature_template

GET _template/feature*

GET _template/template1,template2

验证模板是否存在

HEAD _template/template1

创建/更新模板

PUT _template/feature_template

{

  "index_patterns": "feature*",

  "settings": {

    "number_of_replicas": 0,

    "refresh_interval": "30s"

  }

}

删除模板

DELETE _template/feature_template

创建多个索引模板

    当存在多个索引模板,且某个索引两者都匹配时,settings和mappings将合成一个配置应用在这个索引上。合并的顺序可由索引模板的order属性来控制。

PUT _template/feature_template

{

  "index_patterns": "feature*",

  "order": 0,

  "settings": {

    "number_of_replicas": 0,

    "refresh_interval": "30s"

  }

}

注意:order值大的模板内容会覆盖order值小的。

模板配置文件

    除了以上方式,索引模板也可以在文件中进行配置。索引模板的配置文件需要在每个主节点的config目录下,目录结构为:config/templates/template_1.json。

    template_1.json的样例如下:

  "template-logstash" : { 

    "template" : "logstash*", 

    "settings" : { 

      "index.number_of_shards" : 5, 

      "number_of_replicas" : 1, 

      "index" : { 

        "store" : { 

          "compress" : { 

            "stored" : true, 

            "tv": true 

          } 

        } 

      } 

    }, 

    "mappings" : { 

      "_default_" : { 

        "properties" : { 

          "dynamic" : "true", 

        }, 

      }, 

      "loadbalancer" : { 

        "_source" : { 

          "compress" : true, 

        }, 

        "_all" : { 

          "enabled" : false 

        }, 

        "properties" : { 

          "@fields" : { 

            "dynamic" : "true", 

            "properties" : { 

              "client" : { 

                "type" : "string", 

                "index" : "not_analyzed" 

              },

              "url" : { 

                "type" : "string", 

                "index" : "not_analyzed" 

              } 

            } 

          }, 

          "@source" : { 

            "type" : "string", 

            "index" : "not_analyzed" 

          }, 

          "@timestamp" : { 

            "type" : "date", 

            "format" : "dateOptionalTime" 

          }, 

          "@type" : { 

            "type" : "string", 

            "index" : "not_analyzed", 

            "store" : "no" 

          } 

        } 

      } 

    } 

  } 

}

参考文件:https://www.cnblogs.com/zlslch/p/6478168.html

    https://elasticsearch.cn/article/335

你可能感兴趣的:(索引模板(Index templates))