✅ bool 쿼리의 should는 언제 어떻게 쓰일까? bool 쿼리에서 must와 filter는 반드시 조건을 만족하는 데이터만 조회되지만, should는 조건을 만족하지 않는 데이터도 조회되기도 한다. 다만, should의 조건을 충족시키는 데이터
✅ Elasticsearch 설치하기 OS 환경과 상관없이 간편하고 일관되게 설치하기 위해 Docker를 활용하자. ** 아래 과정은 Docker가 설치되어 있다는 전제 하에서 진행한다. compose.yml 파일 작성 compose 실행 잘 실행됐
✅ 검색 시 필요없는 HTML 태그 제거하기 대부분의 게시글 서비스는 굵게, 기울임, 링크 등을 포함해서 작성할 수 있게 되어 있다. 그러려면 HTML 태그를 포함해서 그대로 DB에 저장해야 하는 경우가 많다. 이렇게 HTML 태그가 포함된 형태의 글
✅ 동의어로 검색하는 방법 (synonym) Samaung Notebook이라는 상품이 있다고 가정하자. 사람들은 검색할 때 notebook이라고 정확하게 검색할 수도 있지만, 노트북, 랩탑, 휴대용 컴퓨터, laptop과 같이 동의어로 검색할 수도
✅ Nori Analyzer를 활용해 한글(korean)이 제대로 검색되게 만들기 기존 컨테이너 종료하기 파일 작성하기 컨테이너 띄우기 Analyze API 활용해 디버깅해보기 인덱스 생성하기 데이터 삽입하기 검색해보기 Nori analyzer를 활용
심플하게 만들기 위해 Service Layer 없이 Controller만 생성해서 CRUD API를 만들 것이다. ✅ 사용자 생성 API 만들기 Controller 틀 만들기 Request DTO 만들기 Controller 완성하기 Postman으로
✅ 페이지네이션 (Pagination) 서버의 과부하를 방지하기 위해 데이터 조회 시 필수적으로 적용해야 하는 기능이 페이지네이션(Pagination)이다. Elasticsearch에서 페이지네이션(Pagination)을 활용해 데이터 조회하는 방법을
✅ 하나의 필드에 text와 keyword 타입을 동시에 사용하고 싶을 때 (Multi Field) 이전 강의(Untitled)에서 데이터 타입을 설명할 때 text는 유연한 검색이 필요할 때 사용한다고 얘기했다. 반면에 keyword는 정확한 검색이
✅ 검색 키워드가 포함된 데이터를 조회하고 싶을 때 (match) match 쿼리는 검색 키워드가 포함된 모든 도큐먼트를 조회한다. 이전 강의에서 역인덱스(Inverted Index)와 애널라이저(Analyzer)를 설명하면서 작동 원리까지 설명했었다
✅ null 허용 (기본적으로 필수로 값을 넣을 필요가 없음) Elasticsearch는 매핑을 정의하더라도 해당 필드가 반드시 존재하거나 null이면 안 된다는 제약을 두지 않는다. 다음과 같은 매핑(mapping)을 설정했다고 치자. "mappin