zoukankan      html  css  js  c++  java
  • ElasticSearch(六):索引模板

    ElasticSearch(六):索引模板

    学习课程链接《Elasticsearch核心技术与实战》


    ## Index Template * Index Template - 帮助你设定`Mappings`和`Settings`,并按照一定的规则,自动匹配到新创建的索引上 - 模板仅在一个索引被创建时,才会产生作用。修改模板不会影响已创建的索引 - 你可以设定多个索引模板,这些设置会被`merge`在一起 - 你可以指定`order`的数值,控制`merging`的过程
    #示例一:对所有的索引有效
    PUT _template/template_default
    {
      "index_patterns": ["*"],
      "order" : 0,
      "version": 1,
      "settings": {
        "number_of_shards": 1,
        "number_of_replicas":1
      }
    }
    
    #示例二:对以test开头索引有效
    PUT /_template/template_test
    {
        "index_patterns" : ["test*"],
        "order" : 1,
        "settings" : {
        	"number_of_shards": 1,
            "number_of_replicas" : 2
        },
        "mappings" : {
        	"date_detection": false,
        	"numeric_detection": true
        }
    }
    
    #查看template信息
    GET /_template/template_default
    GET /_template/temp*
    
    #删除template信息
    DELETE /_template/template_default
    DELETE /_template/template_test
    
    • 如何使用 Index Template,当一个索引被创建时
      • 默认应用Elasticsearch默认的settingsmappings
      • 然后应用order数值低的 IndexTemplate 中的设定
      • 再应用order数值高的 IndexTemplate 中的设定,之前的设定会被覆盖
      • 最后应用创建索引时,用户所指定的settingsmappings,并覆盖之前模板中的设定

    ## Dynamic Template Dynamic Template 是定义在具体索引`mappings`中的,根据Elasticsearch识别的数据类型,结合字段名称,来动态设定字段类型: * 所有的字符串类型都设定成`keyword`,或者关闭`keyword`字段 * `is`开头的字段设置成`boolean` * `long_`开头的都设置成`long`类型
    #示例一:Dynaminc Mapping 根据类型和字段名
    PUT my_index
    {
      "mappings": {
        "dynamic_templates": [
          {
              "strings_as_boolean": {
              "match_mapping_type":   "string",
              "match":"is*",
              "mapping": {
                "type": "boolean"
              }
            }
          },
          {
            "strings_as_keywords": {
              "match_mapping_type":   "string",
              "mapping": {
                "type": "keyword"
              }
            }
          }
        ]
      }
    }
    
    #示例二:
    PUT my_index
    {
      "mappings": {
        "dynamic_templates": [
          {
            "full_name": {
              "path_match":   "name.*",
              "path_unmatch": "*.middle",
              "mapping": {
                "type":       "text",
                "copy_to":    "full_name"
              }
            }
          }
        ]
      }
    }
    


    作者:牧汜
    出处:http://www.cnblogs.com/czbxdd/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    网络编程
    并发编程-线程池
    并发编程-集合
    并发编程-AQS
    并发编程-CAS
    并发编程-volatile和synchronized的区别
    并发编程-synchronized
    并发编程-java内存模型
    JVM-分代垃圾回收器
    性能优化
  • 原文地址:https://www.cnblogs.com/czbxdd/p/11843489.html
Copyright © 2011-2022 走看看