ES를 통해서 Nori로 형태소분석을 진행하여 NNP(고유명사), NNG(일반명사)를 제외한 모든 품사태그를 stoptags에 넣어 단어의 토큰을 빼오도록 하고 싶었다. 그런데 이때, 동의어를 확장해서 가지고 오려고 했을때 이슈케이스를 작성한다.PUT tempResul
Lima를 통한 docker 환경을 구성해서 잘 사용중이였다. 하지만 외부에서 내가 띄운 서비스를 접근해서 확인할 일이 생겼는데, 접근이 되질 않았다. (로컬호스트로는 잘 접근 가능)역시나 docker-desktop에서는 잘 접근이 되는것을 확인하고 이번에도 설정 문제
bash brew install jenv ad-info title: Work 2. Add path bash brew install --cask adoptopenjdk/openjdk/adoptopenjdk11 ls /Library/Java/JavaVirtualMachines # Check list ad-info title: Work 4. Add jenv ...
로깅/추적트랜잭션 관리작업 처리 통계작업 재시작건너뛰기리소스 관리배치처리 과정을 하나의 단위로 만들어 놓은 객체. 전체 계층 최상단Job의 실행단위. Job이 실행될 때, 하나의 JobInstance가 생성. 1:NString, Double, Long, Date의 4가
lima를 통해서 ELK를 구동하는 방법에 대해 이전에 작성한적이 있다. Lima + Lazydocker로 ELK 구동하기해당 서비스를 잘 사용하고 있었는데, 이슈가 하나 발생하였다. "MySQL, MariaDB가 구동된 이후, Localhost:3306으로 연결이 되
Mac M1에서 MySQL 5.7 이미지는 platform 문제로 설치가 되질 않을때, 직접적으로 설치를 하기 위한 Flow를 제공한다. (단, 여기서는 config파일을 마운트 하지 않고, docker cp를 통해서 마운트 한다 )CMakeLists.txtmy.cnf
검색서비스를 운영 중에, 다음과 같은 시나리오 케이스가 존재 하였고 검색이 이루어지지 않는 이슈가 발생하였다. 그 이슈 시나리오는 다음과 같다. 푸켓의 동의어가 뿌켓으로 운영 중이다푸켓의 동의어로 푸켕을 추가하였다사전 배포와 재색인이 수행되었다푸켓이라는 단어로 검색이
Elasticsearch plugin 형태로 ingest를 구성하게 되면, 운영중인 서비스를 계속 배포 및 재시작의 과정이 필요하다. 재배포의 과정을 없에기 위해 ES에서 제공하는 Script(Painless)를 직접 작성하여 처리하는 방안을 작성한다.Painless
기존에 로그데이터 색인을 배치를 통해 진행하고 있었다. 하지만 해당 방식은 실시간이 될 수 없었고(배치 시간을 아무리 쪼개도 결국 배치가 수행되어야만 색인이 되므로),배치로 ES에 색인을 하니, 추천 데이터를 바로바로 Refresh가 되지 않았다. 앱을 방문하는 사용자
카프카를 통한 데이터 파이프라인을 구축하기 위해, 로컬에 docker image로 먼저 카프카를 구축한다.zookeeper 3.8.1kafka 2.13-2.8.1 ( 앞자리는 스칼라 버전, 뒷자리는 카프카 버전 )kafka-uiKAFKA_BROKER_ID : broke
원문 글현재 운영중에 발생한 적은 없지만, ES를 운영하면서 알아야하는 이슈이므로 따로 정리한다. 원문 글이 더욱 자세하고 좋게 글이 작성되어 있고, 실제 내부에서 테스트할 여건이 안되므로 이 블로그에는 간략하게만 작성하도록 한다.Thread Pool은 ES의 주요 기
Elasticsearch에서 문장을 분석할 때, Token이 분리되는 시점에 따른 결과의 차이를 알아보자.해당 글은 자동완성 서비스를 구축하던 중에, Highlighting옵션이 원하는대로 표현되질 않아서 따로 예제를 정리한다.결론부터 말하자면, tokenizer에서
자동완성 서비스를 구축하다가 이론적으로만 알고 있지만 실제로 발생한 이슈케이스에 대해 공유하고자 한다. Elasticsearch에서 analyzer를 설정할 때는, 다음과 같은 단계를 거치게 된다.실질적인 분석이 시작되기 전에 수행되어지는 전처리 단계로서, 특정 문자를
\_source필드에는 색인 단계에서 전달된 원본 JSON 문서 본문이 포함되어 있다. \_source 필드 자체는 색인되지 않으므로 검색할 수는 없지만 get 또는 search와 같은 fetch요청을 실행할 때, 반환될 수 있도록 저장된다.검색 결과로 나온 원래의 J
기본적으로 필드 값은 검색 가능하도록 색인 되지만, 저장되지는 않는다.특정 상황에서는 필드를 저장하는 것이 합리적일 수 있다. 매우 큰 내용 필드를 가진 문서가 있는 경우, \_source 필드에서 원하는 필드를 추출하지 않고 store_field로 지정된 필드만 검색
역색인 구조를 사용하면 검색어를 고유한 정렬된 키워드 목록에서 검색할 수 있으며, 검색어를 목록에 즉시 접근할 수 있다.dov_values는 문서 색인 단계에서 작성된 디스크 상의 데이터 구조 이며, 이를 통해 데이터 접근 패턴을 사용할 수 있다. \_source와 동
1:N관계인 Elaticsearch의 REST -> 메소드와 URL을 조합하여, 예측 가능하고 일정한 정보와 작업을 요청하는것=> 버튼마다 나오는것이 확실한 자판기처럼질의식이 들어왔을 때, 검색 속도가 오래 걸리는 이유는물리적 관계처럼 구성이 되어 있기 때문에, 부모의
다양한 형태로 원하는 내용과 관련있는 결과를 얻어내는 것을 정보 검색(Information Retrieval, 이하 IR)이라고 한다.IR의 정확도 및 효율을 분석하기 위한 평가기준을 알아본다.True Positives(tp) = 선택된 결과(positives)가 관련
자주 즐겨보는 유투버에게서 Graphql을 다루는 영상이 업로드 되었다. 예전에 한번 예제로 만들어보려고 하다가 업무와 Java에 적용하여 하기 어려워서 (라이픽의 특정 프로젝트에 적용하려고) 잠시 덮어준 기억이 있는데 예제가 잘나와있어서 정리한다.해당 예제는 생활코딩