Lucene vs Sorl vs Elasticsearch

Lucene, Solr, Elasticsearch

이전 글에서 우리는 간략히 엘라스틱 서치가 무엇인지에 대해서 학습했다.

아파치 루씬과 ES와 비슷한 검색 엔진인 Solr과 엘라스틱 서치가 각각 무엇이고 어떻게 다른지 알아보자.

Lucene

검색 엔진이자 Java로 구현된 라이브러리이다.

아파치 재단에서 오픈소스로 공개한 프로젝트이다.

장점으로는 API를 통해 전문 검색과 검색 기능을 사용하게 해주는 라이브러리이다.

이 루씬을 구현한 오픈소스가 SolrElasticsearch이다.

그러니까 사실상 루씬은 이러한 검색 엔진들의 기반이 되는 오픈소스 프로젝트라고 할 수 있다.

Solr(솔라)

솔라 역시 아파치 재단에서 개발된 오픈소스이다.

솔라는 루씬을 래핑하여 만들어졌다. 즉 루씬 라이브러리를 기반으로 하여 사용자들이 편하게 검색 기능을 사용할 수 있게 래핑한 오픈소스라고 할 수 있다.

특징으로는 문서 원문 검색에 주로 사용되며 검색 속도가 느리다.

색인에도 수십분의 시간이 걸리기 때문에 실시간 검색이 힘들다.

대신 장점은 문서의 사이즈가 굉장히 큰 장문 데이터 검색에 용이하다. (논문 등)

엘라스틱 서치는 샤이 배논이라는 어느 한 로맨티스트에 의해 개발되었다.

아내의 요리 레시피 검색을 위한 검색엔진을 만들던 그는 Compass라는 검색엔진을 만들었고 이후 Compass를 발전시킨 엘라스틱 서치를 개발하게 된다.

Elastic Search 역시 루씬을 기반으로 만들어졌다.

검색속도가 매우 빠르며 색인도 1초만에 가능하다.

때문에 실시간 검색이 가능다는 장점이 있다.

그러나 솔라에 비해서 사이즈가 큰 장문 데이터 검색시 성능이 좋지 못하다는 단점이 있다.

때문에 일반적으로 실시간 검색이 필요한 기업에서 많이 사용된다. (주식, 쇼핑몰 등)

결론

ES와 Solr 모두 Lucene에서 태어난 자식들이다.

대다수 기능이 비슷하지만 Solr의 경우 대용량 문서의 검색에, ES의 경우 실시간 조회에 탁월한 성능을 갖고 있다.

때문에 기술을 선택할 때 기준은 내가 사용하려는 서비스에 맞는 기술을 선택해야 한다.



© 2022. by minkuk

Powered by minkuk