목록분류 전체보기 (87)
엔지니어 블로그
운영중인 Elasticsearch 혹은 Opensarch Cluster에 Plugin 설치 및 사전 업데이트 등과 같은 작업이 필요할 때, 전체 Cluster를 재시작 하는 것이 아닌 개별 Node를 재시작 해야한다. Shards 할당 기능 설정 PUT _cluster/settings { "persistent": { "cluster.routing.allocation.enable": "primaries" } }Node 재시작시 모든 샤드를 새롭게 할당하면서 발생하는 I/O 비용을 줄이는 효과가 있는 설정이다. None으로 설정시 pri/rep 모두 새롭게 할당하지 않는다. Synced Flush POST _flush/syncedNode 재시작 후 기존 샤드에 존재하던 데이터를 재색인 할 필요가 없는 것을 ..
Path hierachy tokenizer Elasticsearch에서 계층적인 구조의 데이터를 다루기 위해 사용한 path hierachy 토크나이저에 대한 내용입니다. 공식문서 소개 path hierachy 토크나이저는 파일시스템과 유사한 계층적인 값을 받아 경로 구분자를 기준으로 분리하며, 트리의 각 구성요소에 대한 용어를 생성한다.영어 원문을 직역해서 약간 어색한 감이 있지만, 계층 구조의 데이터를 구분자 기준으로 나누어 계층별로 텀을 생성해 주는 토크나이저 라고 생각하면 편하다. 실행 예시 #request curl -X POST "localhost:9200/_analyze?pretty" -H 'Content-Type: application/json' -d' { "tokeni..
Opensearch/Elasticserach 오타 교정 본 내용은 다나와 기술블로그의 '엘라스틱서치 오타교정 API 만들어보기' 글을 참조하고 있습니다. 1. 진행 환경 Opensearch 2.7.0 Elasticsearch에서도 동일하게 진행 가능 2.환경 구성 1. ICU Plugin 설치 bin/opensearch-plugin install analysis-icu 2.Index 생성 mappings/settings PUT auto_complete { "settings": { "index": { "analysis": { "filter": { "my_filter": { "mode": "decompose", "name": "nfc", "type": "icu_normalizer" } }, "..
Function score query 특정 필드에 가중치를 주는 Function score query 옵션 테스트 => 필드의 값(숫자)에 직접 가중치를 줘서 스코어를 조정할 수 있다. test 환경 elasticsearch 8.3.2 version kibana 8.3.2 version Case 1 : document에 9개의 직급을 random하게 지정해주고 그에 따른 가중치를 price field에 지정해준다. Case 1 진행순서 index 생성 function score query 테스트 테스트 결과 확인 기존에 진행했던 news 프로젝트에 적용 결과 확인 1.index 생성 #9개의 직급과 그에 따른 가중치를 각각 rank,price field에 색인 es = Elasticsearch("loca..
Mustache Mustache는 다양한 언어를 합쳐서 사용할 수 있는 템플릿 엔진이다. Elasticsearch의 script에서 유용하게 사용된다. 1. {{#}} ,{{^}} 용법 mustache를 사용하여 script를 작성할때 빈번하게 사용되는 용법이다. 1. {{# keyword}}~{{/keyword}} #은 변수로 받은 값이 True일때 실행된다. 해당 파라미터에 값이 들어왔을떄만 검색을 실행하게 된다. Elasticsearch에서는 주로 일부 파라미터 값이 빈값일때, 다른 값들은 정상적으로 검색되도록 할 때 사용한다. GET my_index/_search/template { "id": "test_template", "params": { "from": "", "size": "", "quer..

Elastic APM 1. APM(Appllication Perfomance Monitoring) ㅊ의 성능을 모니터링을 뜻한다. 성능 문제를 감지하고 진단하기 위한 응답 시간, 리소스 활용도와 같은 주요 메트릭을 모니터링 하는 작업을 수행한다. 2. ElasticAPM Elastic Stack에 내장된 APM 시스템이다. Software와 응용프로그램을 실시간으로 모니터링한다. 들어오는 요청에 대한 응답시간, DB 쿼리 시간, 캐시 호출시간 등 다양항 항목을 모니터링 할 수 있다. 3. Components ElaticAPM은 4가지 component가 있다. APM agent 성능과 오류 데이터를 런타임으로 모아 APM 서버(Elatsic APM integration)로 전달한다. Elatsic APM..
프로시저를 통한 더미데이터 생성 테스트를 위해 더미데이터가 필요할 때 사용할 수 있는 프로시저 DELIMITER $$ DROP PROCEDURE IF EXISTS loopInsert$$ CREATE PROCEDURE loopInsert() BEGIN DECLARE i INT DEFAULT 1; WHILE i

# elasticsearch ILM hot-warm-cold 아키텍쳐 구현 ## hot-warm-cold node elasticsearch는 shard 내 data의 중요도,사용 빈도에 따라 hot,warm,cold 으로 정의된 node에 각각 할당할 수 있다. 각각의 node는 아래 그림처럼 구성될 수 있으며 최소 2개의 node만 있어도 구현 가능하다. 각 node는 hot-warm-cold 순으로 중요도가 높기 때문에 서로 다른 사양으로 구성하게 된다. (일반적으로 hot node는 더 많은 CPU 리소스와 빠른 IO가 필요하고, warm,cold node는 더 많은 disk 공간이 필요하지만 CPU 리소스는 적더오 되고 IO는 더 느려도 된다.) ## ILM을 사용해 how-warm-cold 아키..