ElasticSearch(6): 색인 템플릿

3017 단어

ElasticSearch(6): 색인 템플릿


학습 과정 링크 Elasticsearch 핵심 기술과 실전

Index Template

  • Index Template - MappingsSettings 을 설정하고 일정한 규칙에 따라 새로 만든 인덱스에 자동으로 일치시킵니다.
  • 템플릿은 색인이 생성된 경우에만 작동합니다.템플릿 수정은 생성된 인덱스에 영향을 주지 않습니다
  • 여러 개의 색인 템플릿을 설정할 수 있습니다. 이 설정들은 merge 함께 있을 것입니다
  • 의 수치, 제어order의 과정
  • 을 지정할 수 있다
    # : 
    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 기본mergingsettings
  • 그리고 mappings 값이 낮은 IndexTemplate의 설정
  • 을 적용합니다.
  • 수치가 높은 IndexTemplate의 설정을 다시 적용하면 이전 설정이 덮어씁니다
  • 마지막으로 색인 생성을 적용할 때 사용자가 지정한 orderorder 이전 템플릿의 설정을 덮어씁니다

  • Dynamic Template


    Dynamic Template는 특정 인덱스settings에 정의된 것으로 Elasticsearch가 식별하는 데이터 유형에 따라 필드 이름과 결합하여 필드 유형을 동적으로 설정합니다.
  • 모든 문자열 유형을 mappings 로 설정하거나 mappings 필드를 닫거나
  • keyword로 시작하는 필드는 keyword
  • 로 설정됩니다.
  • is로 시작하는 유형boolean
    # :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"
              }
            }
          }
        ]
      }
    }
  • 좋은 웹페이지 즐겨찾기