검색솔루션 Solr + Lucene, Elasticsearch, MongoDB 중에 뭐가 제일 좋을까요?
글쓴이: viper9 / 작성시간: 금, 2012/12/07 - 2:33오후
검색엔진을 만들려구현해보려고 합니다. 일단 회사업무반?+개인적용도반?의 이유 때문에 시작했지만 잘 진행되면 더 규모있는 솔루션으로 발전시키거나 자체 서비스도 해볼까 싶기도합니다.
일단 웹크롤러는 작성 중입니다.
크롤링한 수집데이터를 어떻게 관리하냐가 문제인데 RDBMS로는 Fulltext Search가 힘들겠더라군요. 그래서 알아본 솔루션은 3가지입니다.
1. Solr + Lucene
2. Elasticsearch (Lucene Based)
3. MongoDB
세가지 중의 하나로 고를까 싶습니다.
루씬이 전문검색도 잘되고 쓰기도 쉬운데 단점은 10기가가 넘는 데이터에 대해서는 성능이 급격히 떨어진다는 얘기가 있구요.
ElasticSearch도 루씬기반이라 같은 문제가 있을 것 같긴한데 분산환경도 잘 지원하는 것 같구요... Solr+루씬에 비해 쓰는게 좀더 편할듯하고...
MongoDB는 NoSQL군 중에서 가장 쓰기 편하더군요.
HBase도 생각해봤는데 Hadoop 설치/관리가 너무 복잡할 것 같아서 패쓰했습니다.
한번 결정하면 되돌리기가 쉽지 않을 것 같아서 잘 결정하고 싶습니다.
Fulltext Search 시에 NoSQL쪽이 루씬에 비해 더 나은 성능을 가져다주는지가 꽤 궁금한데 이거에 대해서는 갑론을박이 좀 있는 것 같아서 잘 모르겠더군요.
혹시 세가지 프로그램에 대하여 아신다면 조언 부탁드립니다.
Forums:
solr + lucene 추천합니다. 이미 검증된
solr + lucene 추천합니다. 이미 검증된 솔루션이고, 사용자층도 넓기 때문에 삽질할 확률이 적기때문이지요.
처음부터 대규모 시스템을 생각한다면, 시작할 엄두도 안날겁니다. 어디서부터 시작해야할지 모르기 때문이지요.
처음에는 간단한 솔루션으로 시작해서 기능에 충실하고, 향후 데이터 량이 늘어남에 따라 적절한 조치를 취해주는것이 접근하기 쉽습니다.
그리고 요즘 PC로도 10G 이상의 데이터를처리하는데 충분합니다.
분산시스템은 테라급 데이터의 규모가 되었을때 생각해도 늦지 않습니다.
답변 감사드립니다. 처음부터 그런 생각을 했던건
답변 감사드립니다.
처음부터 그런 생각을 했던건 나중에 규모를 확장하거나 할 때 어려움이 있거나(혹은 아예 불가능하거나) 하는게 우려되서 였습니다.
일단 solr + 루씬을 알아봐야겠네요.
혹시 다른 의견도 있다면 더 듣고 싶네요.
소스보면 아시겠지만 Solr도 Lucene
소스보면 아시겠지만 Solr도 Lucene 기반이에요.
간단하게 후딱 만드시기에는 sphinx도 좋을것 같아보여요.
http://sphinxsearch.com/docs/2.0.6/about.html
국산검색엔진이 오픈소스로 있는데 fastcat
http://dev.naver.com/projects/ossfastcat 도 고려하시면 좋을것 같네요.
흘러가고있는 지금 이 시간에 충실하자.
댓글 달기