[공부] 독서/실무 예제 Elasticsearch 검색엔진 활용(2)
-
Elasticsearch 활용 (성능 최적화)
하드웨어 관점 CPU 하이퍼 스레딩 포함 32코어 까지 대응. 32 코어 보다 크면 너무 많은 스레드가 생성되어 OOM 이 발생한다. CPU 사용률이 60% 이상이면 CPU 확장을 고려해보는 것이 좋다. RAM 최대 32 GB. 32GM 이상이면 GC 수행시 성능 저하가 염려된다. Disk SSD 네트워크 분산 구조를 지원하므로 클러스터 관점이 더 좋다. Document 관점 Shard의 크기를 결정하는 기준 1. 데이터 노드의 갯수와 맞춘다. 가장 손쉽게 생각할 수 있는 방법. 2. CPU 코어의 갯수와 맞춘다. ES가 병렬 처리 기반이므로. 3. Document의 데이터 크기 샤드의 물리적인 크기는 50GB 이하인 것이 좋으므로. 인덱싱 처리량을 늘리는 가장 쉬운 방식이 샤드를 늘리는 것. 샤드의 크..
2019.04.13 -
Elasticsearch 활용 (Analyzer, Aggregation)
엘라스틱서치 : 2014 기준 자동완성 - 전방일치 : 엘라 -> 엘라스틱 - 부분일치 : naver -> www.naver.com - 후방일치 : 청바지 -> 남자청바지 자동완성을 구현하는 방법론 1. Prefix 쿼리 2. Suggester 3. ngram Analyzer 4. edge ngram Analyzer Analyzer 용도에 맞는 Tokenizer를 사용한다. Tokenizer 일반 텍스트를 인덱스하기위한 의 작은 요소로 분할하는 방식 Tokenizer 종류 : https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html Filter Tokenizer에 들어가기전에 일반 텍스트를 가공하는 방식..
2019.04.13