[ Elasticsearch ] 엘라스틱 서치 가볍게 살펴보는 개념 :)
검색 엔진의 한 종류이다.
<aside> 💡 검색 엔진(search engine)이란, 웹에서 정보를 수집하여 검색 결과를 제공하는 프로그램이다.
</aside>
우리가 많이 사용하고있는 데이터베이스는 비정형 데이터를 색인하고 검색하는 것이 불가능한데, 엘라스틱서치를 사용하면 비정형 데이터를 색인하고 검색하는 것이 가능하다.
요즘 빅데이터를 빠르게 검색하기 위해 NoSQL(No Structured Query Language)를 많이 사용하는데, 엘라스틱도 NoSQL의 일종이다.
역색인 구조를 사용함으로써 빠른 검색이 가능
<aside> 💡 역색인 : 키워드를 통해 문서를 찾는 방식
</aside>
오픈소스
진입장벽이 있음
Document간의 조인을 할 수 없음 (두 번 쿼리로 가능)
트랜젝션이 제공되지 않음
<aside> 💡 트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업이다. 간단하게 말해서 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미한다.
</aside>
가장 좋은 것은 관계형 DB를 베이스로 하고 검색에 필요한 부분만 Elastic Search로 데이터를 이동/복사하는 것이다.

DB에서 필요한 데이터를 추출하여 자동적으로 Elastic Search에 데이터를 넣는 부분을 담당하는 툴은 대표적으로 logstash가 있다.(위 그림에서 Mongo Connector에 해당)
