[Elasticsearch] Custom Tokenizer 를 만들어 Elasticsearch 에 넣어보자 (+이론 설명)
·
인프라 기술/Elasticsearch
Elasticsearch 는 검색에 대한 요구사항을 해결하기에 도입하기에 굉장히 유용하며, 이제 백엔드 개발 분야에서는 거의 필수적으로 가져가야 하는 지식이라고 생각이 된다. Elasticsearch 를 활용함에 있어서 가장 큰 핵심은 Analyzer, Tokenizer 를 사용하는 것이다. 많은 개발자들이 공감하겠지만, 회사나 프로젝트 내부 도메인 기반으로 검색 기능을 만들려면 존재하는 tokenizer 들로는 어려운 경우가 많다. 검색 자체가 형태소 같은 단위가 아니라 해쉬태그나 연관 검색어 위주로 검색할 때, 도메인 특화되어 있으면 도메인에 특화되게끔 Tokenize 해주는건 Elasticsearch 에선 당연히 어렵기 때문이다. 이번 포스트에선 Custom Tokenizer 적용을 위해 이해가 ..
[Elasticsearch 기본] - 2. Search 쿼리와 활용 가능 기능들
·
인프라 기술/Elasticsearch
Elasticsearch 의 Search 쿼리 Elasticsearch 검색의 핵심 쿼리 3대장 Elasticsearch 에 analyzer 들을 정의하여 index 를 생성하는 것까지 살펴봤고, 이제는 elasticsearch의 꽃인 검색 쿼리에 대해서 살펴보자. 기본적으로 ES에게 특정 index 내 검색을 요청하는 쿼리는 다음과 같다 $ GET /{index_name}/_search 위와 같이 날리면 index 내의 모든 필드를 조회해준다. 기본 Pagination 이 적용되어 offset 0, limit 10 으로 적용된다. 하지만 우리는 쿼리 형태의 요청을 날릴 것이기 때문에, 다음 쿼리들에 대해서 알아둬야 한다. match 쿼리 ⭐원하는 내용이 포함된 모든 데이터를 조회하는, Analyzer..
[Elasticsearch 기본] - 1. 기본 개념, 동작 원리와 Analyzer
·
인프라 기술/Elasticsearch
Elastic Search 란 오픈 소스이며, Restful한 검색 및 분석 엔진, 확장 가능한 DB 저장소로, 쉽게 말해서 검색 / 데이터 분석에 최적화된 DB이다. 대표적인 활용 사례로는 우선 데이터 수집 및 분석에 사용된다. 로그와 같은 대규모 데이터를 수집 및 분석하는데 최적화되어 있고, ELK 스택이 통합적으로 사용된다. 또한 Elasticsearch 는 자체적인 검색 엔진을 가지고 있어 검색 최적화에도 굉장히 많이 사용된다. 뛰어난 검색 속도를 자랑하며, 오타와 동의어 등 일반적으로 개발자들에게 높은 난이도의 개발을 요구하는 부분을 해결해준다. 동작 방식 MySQL은 SQL 문으로 3306 포트에 있는 프로세스와 통신을 하는 것이며, Elasticsearch는 REST API 방식으로..