elasticsearch(6)
-
[ELASTICSEARCH] analyzer
es에서 anayzer는 아래와 같은 형태로 구성이 된다. analyzer를 구성하는데 있어서 Char Filter와 Token Filter는 없어도 무방하지만 Tokenizer는 반드시 설정이 되어야 한다.Char Filter는 사용자 query가 들어오면 해당 query에서 전처리하는 역할을 한다. Tokenizer는 Char Filter에서 전처리된 결과를 Tokenizer 알고리즘에 맞게 Tokenizing을 하는 역할을 한다.아래와 같은 tokenizer 들이 있다. standardes에서 제공하는 기본 tokenizer. 텍스트 기반으로 tokenizing한다.lowercase모든 문자를 소문자로 변환하며, 텍스트 기반으로 tokenizing한다.ngramn개의 연속된 단어 모음으로 toke..
16:29:56 -
[ELASTICSEARCH] HOTDATA와 WARMDATA 구성하기
대용량의 데이터를 저장해야 하는 경우, 모든 데이터를 SSD에 저장하기에는 비용 문제가 크기 때문에, 자주 검색되는 데이터의 경우 HOTDATA에 그렇지 않은 데이터는 WARMDATA로 구분하여 저장하는 시나리오에 대해 생각해보자. HOTDATA : 최근 1개월 데이터WARMDATA : 나머지 11개월 데이터 HOTDATA의 경우 속도가 빠른 SSD 디스크를 사용하고, WARMDATA는 비용이 저렴한 SATA 데이터를 사용하도록 한다.또한 최근 1개월 데이터의 경우 HOTDATA 쪽 node에 index가 설정하도록 하고, 1개월이 지난 데이터의 경우 WARMDATA 쪽 node로 shard가 이동하도록 구성한다.우선 각 node 별로 HOTDATA, WARMDATA를 구성하도록 하자. elasticse..
2025.09.09 -
[ELASTICSEARCH] CURATOR 여러 기능 활용하기
이번 포스팅에서는 curator의 여러 기능들에 대해 설명하고자 한다. 간단한 curator의 소개 및 설치는 여기를 참고!!1. 스냅샷 찍기actions: 1: action: snapshot options: repository: snapshot-test name: ignore_unavailable: True wait_for_completion: True skip_repo_fs_check: False ignore_empty_list: True filters: - filtertype: age source: name..
2025.09.08 -
[ELASTICSEARCH] 검색 성능 최적화 하기
1. cache 활용하기 사용자가 요청한 query 결과를 es에서는 일정 부분 메모리에 담은 후 같은 요청이 있을 경우 메모리에 있는 결과를 사용하는 cache 기능을 제공하고 있다. 이를 활용하면 검색 성능 향상에 큰 도움을 줄 수 있다.아래는 es에서 동작하고 있는 cache의 종류에 대하여 설명하였다. 1.1 Node Query Cache filter context에 의해 검색된 결과를 caching 영역에 저장하며, 글자 그대로 해당 node의 cache 영역을 활용한다. filter context는 term, terms 혹은 range 등 analyze를 거치지 않고 단지 문서내에 해당 조건이 맞는지 여부만을 판별하기 위한 query를 말한다. 사용자가 filter context로 query를..
2025.09.01 -
[ELASTICSEARCH] 색인 성능 최적화 하기
이번 글에서는 es 색인을 최적화 할 수 있는 방법에 대해 알아보자. 1. 정적 mapping 사용하기 es는 기본적으로 각 데이터에 대한 mapping 정보를 따로 지정해 주지 않아도 입력으로 들어오는 데이터를 유추해서 mapping 정보를 생성한다. 하지만 이렇게 생성할 경우 불필요한 indexing 데이터를 생성할 수 있고, 성능에도 이슈가 있을 수 있기 때문에 가급적이면 미리 mapping 정보를 생성해 놓는게 더 효율적이다. 아래의 예는 동적으로 mapping 정보가 생성된 es index의 예를 보여준다. $> curl -X GET "http://localhost:9200/test?pretty" -H 'Content-Type: application/json'{ "test" : { ..
2025.08.28 -
[ELASTICSEARCH] es 모니터링하기
es 클러스터 상태 확인하기 $> curl -s "http://localhost:9200/_cat/health?format=json&pretty" timestampAPI를 호출한 시간cluster클러스터 이름status클러스터의 상태green : 정상 상태yellow : 모든 primary shard는 정상적으로 동작하나 일부 혹은 전체 replica shard가 정상 동작하지 않음red : 일부 혹은 전체 primary / replica shard가 정상 동작하지 않음node.total클러스터의 전체 노드 수node.data클러스터 내의 데이터 노드 수shards클러스터 내의 전체 shard 수pri클러스터 내의 primary shard 수relo재배치되고 있는 shard 수. 해당 값이 높은 경우 ..
2025.08.20