-
엘라스틱 서치 10 - 인덱스 설정, 매핑, 템플릿 등록, 라이프사이클 관리Infra 2023. 12. 28. 20:00
주제 10: 엘라스틱서치(Elasticsearch)에서의 인덱스 설정, 매핑, 템플릿 등록 및 라이프 사이클 관리
엘라스틱서치는 데이터를 저장하고 검색하기 위한 기본 단위인 인덱스를 관리하는 기능을 제공합니다. 이번 주제에서는 인덱스 설정, 매핑, 템플릿 등록 및 라이프 사이클 관리에 대해 알아보겠습니다.
10.1 인덱스 설정 및 매핑 개념
엘라스틱서치의 인덱스는 특정 유형의 문서를 저장하는 데 사용되며, 여러 샤드로 구성됩니다. 각 인덱스는 설정 및 매핑을 가지며, 이를 통해 인덱스의 성능과 검색 결과의 정확성을 향상시킬 수 있습니다.
10.2 인덱스 설정 및 매핑 실습
10.2.1 인덱스 생성 및 설정
아래 예제는 'my_index'라는 인덱스를 생성하면서 샤드 개수와 복제 개수를 설정하는 API 호출입니다.
curl -X PUT "localhost:9200/my_index?pretty" -H 'Content-Type: application/json' -d' { "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } } '
10.2.2 인덱스 매핑 설정
아래 예제는 'my_index'라는 인덱스에 대해 'message' 필드의 데이터 유형을 text로 설정하는 매핑 API 호출입니다.
curl -X PUT "localhost:9200/my_index/_mapping?pretty" -H 'Content-Type: application/json' -d' { "properties" : { "message" : { "type" : "text" } } } '
10.3 인덱스 템플릿 등록 및 라이프 사이클 관리
인덱스 템플릿을 사용하면, 새로운 인덱스가 생성될 때 마다 특정 설정 및 매핑을 자동으로 적용할 수 있습니다. 또한, 인덱스 라이프 사이클 관리 기능을 통해 인덱스의 생성, 수정, 삭제 등의 라이프 사이클을 자동으로 관리할 수 있습니다.
10.3.1 인덱스 템플릿 등록
아래 예제는 'my_template'라는 인덱스 템플릿을 등록하는 API 호출입니다. 이 템플릿은 'log*'로 시작하는 모든 새 인덱스에 적용되며, 샤드 개수와 복제 개수를 설정합니다.
curl -X PUT "localhost:9200/_template/my_template?pretty" -H 'Content-Type: application/json' -d' { "index_patterns" : ["log*"], "settings" : { "number_of_shards" : 2 } } '
10.3.2 인덱스 라이프 사이클 관리
아래 예제는 'my_policy'라는 인덱스 라이프 사이클 정책을 생성하는 API 호출입니다. 이 정책은 인덱스가 30일이 되면 강제로 삭제합니다.
curl -X PUT "localhost:9200/_ilm/policy/my_policy?pretty" -H 'Content-Type: application/json' -d' { "policy": { "phases": { "delete": { "min_age": "30d", "actions": { "delete": {} } } } } } '
이렇게 엘라스틱서치에서는 인덱스 설정, 매핑, 템플릿 등록 및 라이프 사이클 관리 기능을 통해 인덱스를 효율적으로 관리할 수 있습니다. 다음 주제에서는 엘라스틱서치의 데이터 분석 기능에 대해 알아보겠습니다.
'Infra' 카테고리의 다른 글
엘라스틱 서치 9 - 클러스터 설정 및 관리 (0) 2023.12.25 엘라스틱 서치 8 - 고급검색 (0) 2023.12.21 엘라스틱 서치 7 - 스크립팅 (0) 2023.12.18 엘라스틱 서치 6 - 전문(full-text) 검색 (0) 2023.12.14 엘라스틱 서치 5 - 데이터 집계 (1) 2023.12.11