Elasticsearch - Rest High Level Client를 이용한 Index Template 생성
              
          2019. 6. 27. 20:39ㆍSearch-Engine/Elasticsearch&Solr

오늘 간단히 다루어볼 내용은 엘라스틱서치의 REST 자바 클라이언트인 Rest High Level Client를 이용하여 Index Template을 생성해보는 예제이다. 바로 예제로 들어간다.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public void indexTemplate() throws IOException {         String typeName = "_doc";         if(!existTemplate()) {             try(RestHighLevelClient client = createConnection();){                 PutIndexTemplateRequest templateRequest = new PutIndexTemplateRequest("log-template");                 templateRequest.patterns(Arrays.asList("logstash-*"));                 XContentBuilder mapping = XContentFactory.jsonBuilder()                                                          .startObject()                                                              .startObject(typeName)                                                                  .startObject("properties")                                                                      .startObject("date")                                                                            .field("type","date")                                                                       .endObject()                                                                       .startObject("fieldName")                                                                           .field("type","keyword")                                                                       .endObject()                                                                  .endObject()                                                              .endObject()                                                          .endObject();                 templateRequest.mapping("_doc", mapping);                 AcknowledgedResponse templateResponse = client.indices().putTemplate(templateRequest, RequestOptions.DEFAULT);                 if(!templateResponse.isAcknowledged()) throw new ElasticsearchException("Create Index Template Failed !");             }         }     } | cs | 
해당 인덱스 템플릿으로 생성될 수 있는 인덱스 패턴은 배열로 여러개 지정가능하다. 현재 설정은 단순 mapping만 설정하였지만, settings 정보까지 인덱스 템플릿 설정으로 넣어줄 수 있다. 만약 로그스태시나 비트 프레임워크를 엘라스틱과 연동하여 일자별 로그를 수집하는 기능을 구현한다면 미리 인덱스 템플릿으로 생성될 인덱스의 정의를 잡아주는 것이 좋을 것이다.
이제 해당 인덱스 템플릿을 구성한 이후에 logstash-*로 시작하는 인덱스가 생성될때 위와 같은 mapping 설정대로 필드가 생성될 것이다.
'Search-Engine > Elasticsearch&Solr' 카테고리의 다른 글
| Elasticsearch - Aggregation API(엘라스틱서치 집계,버킷(Bucket Aggregations) 집계) -2 (1) | 2019.09.20 | 
|---|---|
| Elasticsearch - Aggregation API(엘라스틱서치 집계,메트릭(Metric Aggregations) 집계) -1 (0) | 2019.09.19 | 
| ELK Stack - Logstash(로그스태시)를 이용한 로그 수집 (1) | 2019.06.26 | 
| ELK Stack - Filebeat(파일비트)란? 간단한 사용법 (1) | 2019.06.17 | 
| Elasticsearch - 엘라스틱서치 노드의 종류 그리고 클러스터링 (4) | 2019.06.08 |