美文网首页ElasticSearch
索引模板(Index templates)

索引模板(Index templates)

作者: 王勇1024 | 来源:发表于2018-12-24 18:57 被阅读66次

    为什么需要索引模板?

        在实际工作中,针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(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)

        本文链接:https://www.haomeiwen.com/subject/bxxtlqtx.html