장점
- 오픈소스 검색엔진이다. 활발한 오픈소스 커뮤니티가 ES를 끊임없이 개선하고 발전시키고 있다.
- 전문검색 : 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색할 수 있다. 기능별, 언어별 플러그인을 적용할 수 있다.
- 통계 분석 : 비정형 로그 데이터를 수집하여 통계 분석에 활용할 수 있다. Kibana를 연결하면 실시간으로 로그를 분석하고 시각화할 수 있다.
- Schemaless : 정형화되지 않은 문서도 자동으로 색인하고 검색할 수 있다.
- RESTful API : HTTP기반의 RESTful를 활용하고 요청/응답에 JSON을 사용해 개발 언어, 운영체제, 시스템에 관계없이 다양한 플랫폼에서 활용이 가능하다.
- Multi-tenancy : 서로 상이한 인덱스일지라도 검색할 필드명만 같으면 여러 인덱스를 한번에 조회할 수 있다.
- Document-Oriented : 여러 계층 구조의 문서로 저장이 가능하며, 계층 구조로된 문서도 한번의 쿼리로 쉽게 조회할 수 있다.
- 역색인(Inverted Index)
- 확장성 : 분산 구성이 가능하다. 분산 환경에서 데이터는 shard라는 단위로 나뉜다.
단점
- 완전 실시간은 아니다. 색인된 데이터는 1초 뒤에나 검색이 가능하다. 내부적으로 commit과 flush같은 복잡한 과정을 거치기 때문.
- Transaction Rollback을 지원하지 않는다. 전체적인 클러스터의 성능 향상을 위해 시스템적으로 비용 소모가 큰 롤백과 트랜잭션을 지원하지 않는다. 조심하자..
- 데이터의 업데이트를 제공하지 않는다. 업데이트 명령이 올 경우 기존 문서를 삭제하고 새로운 문서를 생성한다. 업데이트에 비해서 많은 비용이 들지만 이를 통해 불변성(Immutable)이라는 이점을 취한다.
'개발 > Elastic Search' 카테고리의 다른 글
Node Types (0) | 2024.02.01 |
---|---|
기본 용어 (1) | 2024.01.31 |
특징 (0) | 2024.01.31 |
역색인 (0) | 2024.01.31 |
Elastic Search란? (0) | 2024.01.31 |