저도 드디어 Elastic search 를 다뤄볼 일이 생겼네요
들어가기에 앞서 간단히 검색에 대한 개념과 정의를 구분 해야겠습니다
Search Engine
정보를 수집해 검색 결과를 제공하는 프로그램
MySQL 이나 MongoDB 는 Database 라고 하는데 Elastic Search는 Engine 이다
Search engine 은 book 의 index 같은 것인데 내가 가지고 있는 모든 book 에 대한 index 를 수집해 둔 것이라 볼 수 있다.
구성요소
1.
검색엔진
•
정보를 수집해 검색 결과를 제공하는 프로그램
2.
검색 시스템
•
검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭
3.
검색 서비스
•
검색엔진을 기반으로 구축한 검색 시스템을 활용해 검색 결과를 서비스로 제공한다.
수집기, Storage, 색인기, 검색기로 구성되어 있다.
RDB 와 차이점
MySQL 에서도 되는데 왜 굳이 Elastic Search 를 선택할까? 차이점은 무엇일까?
Search
•
RDB
◦
DB 는 데이터를 통합 관리한다
▪
저장 방식에 따라 관계형 또는 계층형 DB로 나뉜다.
◦
RDB 는 SQL문을 이용해 text matching 으로 원하는 정보를 검색한다.
•
검색엔진
◦
검색 엔진은 비정형 데이터를 색인하고 검색할 수 있다.
◦
형태소 분석을 통해 사람이 구사하는 자연어의 처리가 가능해진다
◦
역색인 구조를 바탕으로 빠른 검색 속도를 보장한다.
Search