Elasticsearch를 왜 쓸까에 대한 고민
사실 올해 초까지는 Elasticsearch라는게 뭔지도, 존재하는지도 몰랐습니다.
제가 다니고 있는 회사의 서비스는 검색을 DB Like의 형태로 제공하고 있었는데
이걸 개선하는 과정에서 Elasticsearch를 도입했습니다.
1. 검색능력
Elasticsearch는 검색엔진입니다. 그런 이유로 아주 강력한 Full-text 검색이 가능하죠
Full-text은 Text같은 데이터도 색인이 가능하게 해주는 기능으로 검색 속도에서 개선점이 있다고 생각합니다.
Elasticsearch는 각 Text 데이터를 형태소 형태로 분리하여 각 값마다 문서들이 매핑되어있는 형태로 해당 내용이 들어있어야 검색이 되는 %Like% 검색보다 "라면먹고 싶다" => 라면, 먹-, 먹다와 같이 다양한 값들을 바탕으로 검색 결과가 풍족해집니다.
2. 호환이 안되면 이상한거인 호환성
Elasticsearch는 Java, Python, JS 등을 포함한 다양한 언어들을 지원하며 REST API를 지원합니다.
3. 쉬운 확장성
스케일 아웃이 매우 매우 쉽습니다. 클러스터에 하나의 노드를 추가하면 끝입니다. 기껏 확장해놨더니 비용나간다고 줄이라고 하는게 문제였지만요
4. 근접 실시간
클러스터의 성능에 따라 다르지만 색인 시간이 굉장히 짧습니다. 물론 작고 소중한 인스턴스들을 사용하는 탓에 저는 준실시간을 구현했다가 성능이슈 때문에 바꿨습니다
회사에서 서비스 주요기능에 집중하다, 부가기능들을 손대기 시작했었습니다. 그덕에 검색엔진을 맡게 되었는데요
덕분에 제 의견이 많이 반영된 서비스를 어플리케이션에 적용시킬 수 있어서 좋았습니다
다음은 인덱스 매핑, 검색 템플릿 등의 Elasticsearch 사용법에 대해 써보겠습니다.
'Open Source > Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 1. ELK 스택? (2) | 2022.10.26 |
---|