728x90
검색 시스템의 이해
검색 서비스 > 검색 시스템 > 검색 엔진
- 검색 엔진: 광활한 웹에서 정보를 수집해 검색 결과를 제공하는 프로그램으로 검색 결과로 제공되는 데이터의 특성에 따라 구현 형태가 달라진다.
- 검색 시스템: 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭한다.
- 검색 서비스: 검색 엔진을 기반으로 구축한 검색 시스템을 활용해 검색 결과를 서비스로 제공한다
검색 시스템 구성 요소

- 수집기: 웹에서 필요한 정보를 수집하는 프로그램(크롤러, 스파이더, 윔, 웹 로봇)
- 스토리지: 데이터베이스에서 데이터를 저장하는 물리적인 저장소. 검색엔진은 색인한 데이터를 스토리지에 보관
- 색인기: 다양한 형태소 분석기를 조합해 정보에서 의미가 있는 용어를 추출하고 검색에 유리한 역색인 구조로 데이터를 저장한다.
- 검색기: 사용자 질의를 입력받아 색인기에서 저장한 역색인 구조에서 일치하는 문서를 찾아 결과로 반환한다.
- 형태소 분석기를 이용해 사용자 질의에서 유의미한 용어를 추출해 검색한다.
- 사용하는 형태소 분석기에 따라 검색 품질 결정
관계형 DB와 차이점
| ES | 관계형 DB |
| 인덱스 | 데이터베이스 |
| 샤드 | 파티션 |
| 타입 | 테이블 |
| 문서 | 행 |
| 필드 | 열 |
| 매핑 | 스키마 |
| QueryDSL | SQL |
관계형 DB의 단점: 텍스트를 여러 단어로 변형하거나 여러 개의 동의어나 유의어를 활용한 검색은 불가능하다.
검색엔진은 데이터 베이스에서 불가능한 비정형 데이터를 색인하고 검색할 수 있다. 또한 형태소 분석을 통해 사람이 구사하는 자연어 처리가 가능해지고, 역색인 구조를 바탕으로 빠른 검색 속도를 보장한다
Elastic Search에서 사용하는 기능 비교
| ES(Http Method) | 관계형 DB | 기능 |
| GET | SELECT | 데이터 조회 |
| PUT | INSERT | 데이터 생성 |
| POST | UPDATE, SELECT | 인덱스 업데이트, 데이터 조회 |
| DELETE | DELETE | 데이터 삭제 |
| HEAD | 인덱스의 정보 확인 |
Elastic Search는 구조화되지 않은 비정형 데이터도 검색이 가능하다. 구조화되지 않은 데이터까지 스스로 분석해 자동으로 필드를 생성하고 저장한다.
검색 시스템과 Elastic Search
엘라시틱서치 장점
- 오픈소스 검색 엔진
- 전문 검색
- 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색
- 통계 분석
- 키바나 연결 시 실시간 로그를 시각화 가능하다.
- 스키마리스
- RestFul API
- 멀티테넌시
- 서로 상이한 인덱스라도 검색한 필드명만 같다면 여러 개의 인덱스를 한번에 조회 가능
- Document-Oriented
- 역색인
- 종이책의 마지막 페이지에서 제공하는 색인 페이지와 비슷하게 제공되는 특수한 데이터 구조
- 확장성과 기용성
엘라시틱서치 단점
- 실시간이 아님
- 일반적으로 색인된 데이터는 통산 1초 뒤에 검색이 가능(내부적으로 커밋/플러시 같은 과정을 거치기 때문)
- 트랜잭션과 롤백 기능 제공하지 않는다
- 최악의 경우 데이터 손실의 위험이 있다.
- 데이터의 업데이트를 제공하지 않는다.
- 업데이트 시 기존 문서를 삭제하고 변경된 내용으로 새로운 문서를 생성하는 방식을 사용
728x90
'Elastic Search' 카테고리의 다른 글
| Ch03. 데이터 모델링 - 필드 데이터 타입 (0) | 2025.09.07 |
|---|---|
| Ch03. 데이터 모델링 - 메타 필드 (0) | 2025.09.07 |
| Ch03. 데이터 모델링 - 매핑 API (0) | 2025.09.07 |
| Ch02. 엘라스틱서치 살펴보기 - 주요 API (0) | 2025.09.06 |
| Ch02. 엘라스틱서치 살펴보기 - 엘라스틱서치 구성하는 개념 (0) | 2025.09.02 |