'Templates'에 해당되는 글 2건

  1. 2016.03.29 elasticsearch templates mapping
  2. 2015.03.06 elasticsearch index templates 만들기

elasticsearch 데이터를 넣으면 데이터를 보고 알아서 필드 타입 대해서 정의 해주는데 

상황에 따라서 정수와 실수에 대한 정의 또는 int와 bigint에 대한 처리를 해줘야 될때가 있다 

그럴 경우 특정 필드에서 대해서 매핑 처리가 가능하다

아래 래퍼런스 사이트 참조

https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html


샘플 데이터 : curl -XPUT localhost:9200/_template/stat --upload-file template.json

{ "order":0, "template":"stat-*", "settings":{ "index.refresh_interval":"5s" }, "mappings":{ "_default_":{ "dynamic_templates":[ { "long_fields":{ //long "match":"long_*", "mapping":{ "type":"long" } } }, { "double_fields":{ //double "match":"double_*", "unmatch":"*_text", //외 처리 가능 레퍼런스보면 정규식형태도 있음 "mapping":{ "type":"double" } } }, { "string_fields":{ //string 드에 대한 처리 "match_mapping_type":"string", "match":"*", "mapping":{ "index":"analyzed", "omit_norms":true, "type":"string", "fields":{ "raw":{ "index":"not_analyzed", "ignore_above":256, "type":"string" } } } } } ], "_all":{ "enabled":true } } }, "aliases":{} }


Posted by 시니^^

elasticsearch index templates 만들기

가이드 : http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html


1. GET을 이용한 저장된 전체 인덱스 템플릿가져오기

$ curl -XGET localhost:9200/_template/
{"logstash":{"order":0,"template":"logstash-*","settings":{"index.refresh_interval":"5s"},"mappings":{"_default_":{"dynamic_templates":[{"string_fields":{"mapping":{"index":"analyzed","omit_norms":true,"type":"string","fields":{"raw":{"index":"not_analyzed","ignore_above":256,"type":"string"}}},"match_mapping_type":"string","match":"*"}}],"properties":{"geoip":{"dynamic":true,"path":"full","properties":{"location":{"type":"geo_point"}},"type":"object"},"@version":{"index":"not_analyzed","type":"string"}},"_all":{"enabled":true}}},"aliases":{}},"nginx_log":{"order":0,"template":"nginx_log-*","settings":{"index.refresh_interval":"5s"},"mappings":{"_default_":{"dynamic_templates":[{"string_fields":{"mapping":{"index":"analyzed","omit_norms":true,"type":"string","fields":{"raw":{"index":"not_analyzed","ignore_above":256,"type":"string"}}},"match":"*","match_mapping_type":"string"}}],"properties":{"geoip":{"dynamic":true,"path":"full","properties":{"location":{"type":"geo_point"}},"type":"object"},"@version":{"index":"not_analyzed","type":"string"}},"_all":{"enabled":true}}},"aliases":{}}}

※ 2개 logstash / nginx_log  두개 인덱스 템플릿 등록된게 보인다


2. GET을 이용해서 하나만 지정해서 보기

$ curl -XGET localhost:9200/_template/nginx_log
{"nginx_log":{"order":0,"template":"nginx_log-*","settings":{"index.refresh_interval":"5s"},"mappings":{"_default_":{"dynamic_templates":[{"string_fields":{"mapping":{"index":"analyzed","omit_norms":true,"type":"string","fields":{"raw":{"index":"not_analyzed","ignore_above":256,"type":"string"}}},"match":"*","match_mapping_type":"string"}}],"properties":{"geoip":{"dynamic":true,"path":"full","properties":{"location":{"type":"geo_point"}},"type":"object"},"@version":{"index":"not_analyzed","type":"string"}},"_all":{"enabled":true}}},"aliases":{}}}


3. PUT 신규 템플릿 신규 등록

$ curl -XPUT localhost:9200/_template/nginx_log2 -d ' > { > "order":0, > "template":"nginx_log2-*", > "settings":{ > "index.refresh_interval":"5s" > }, > "mappings":{ > "_default_":{ > "dynamic_templates":[{ > "string_fields":{ > "mapping":{ > "index":"analyzed", > "omit_norms":true, > "type":"string", > "fields":{ > "raw":{ > "index":"not_analyzed", > "ignore_above":256, > "type":"string" > } > } > }, > "match_mapping_type":"string", > "match":"*" > } > } > ], > "properties":{ > "geoip":{ > "dynamic":true, > "path":"full", > "properties":{ > "location":{ > "type":"geo_point" > } > }, > "type":"object" > }, > "@version":{ > "index":"not_analyzed", > "type":"string" > } > }, > "_all":{ > "enabled":true > } > } > }, > "aliases":{ > } > }' {"acknowledged":true}


4. DELETE 템플릿 삭제

$ curl -XDELETE localhost:9200/_template/nginx_log2
{"acknowledged":true}


이것 외에도 GET할때 여러개 템플릿 같이 보기등 가이드사이트 가면 몇가지 예시 더 있음 참고할것!~

Posted by 시니^^