검색솔루션 Solr + Lucene, Elasticsearch, MongoDB 중에 뭐가 제일 좋을까요?

viper9의 이미지

검색엔진을 만들려구현해보려고 합니다. 일단 회사업무반?+개인적용도반?의 이유 때문에 시작했지만 잘 진행되면 더 규모있는 솔루션으로 발전시키거나 자체 서비스도 해볼까 싶기도합니다.

일단 웹크롤러는 작성 중입니다.

크롤링한 수집데이터를 어떻게 관리하냐가 문제인데 RDBMS로는 Fulltext Search가 힘들겠더라군요. 그래서 알아본 솔루션은 3가지입니다.

1. Solr + Lucene
2. Elasticsearch (Lucene Based)
3. MongoDB

세가지 중의 하나로 고를까 싶습니다.

루씬이 전문검색도 잘되고 쓰기도 쉬운데 단점은 10기가가 넘는 데이터에 대해서는 성능이 급격히 떨어진다는 얘기가 있구요.

ElasticSearch도 루씬기반이라 같은 문제가 있을 것 같긴한데 분산환경도 잘 지원하는 것 같구요... Solr+루씬에 비해 쓰는게 좀더 편할듯하고...

MongoDB는 NoSQL군 중에서 가장 쓰기 편하더군요.

HBase도 생각해봤는데 Hadoop 설치/관리가 너무 복잡할 것 같아서 패쓰했습니다.

한번 결정하면 되돌리기가 쉽지 않을 것 같아서 잘 결정하고 싶습니다.

Fulltext Search 시에 NoSQL쪽이 루씬에 비해 더 나은 성능을 가져다주는지가 꽤 궁금한데 이거에 대해서는 갑론을박이 좀 있는 것 같아서 잘 모르겠더군요.

혹시 세가지 프로그램에 대하여 아신다면 조언 부탁드립니다.

익명 사용자의 이미지

solr + lucene 추천합니다. 이미 검증된 솔루션이고, 사용자층도 넓기 때문에 삽질할 확률이 적기때문이지요.

처음부터 대규모 시스템을 생각한다면, 시작할 엄두도 안날겁니다. 어디서부터 시작해야할지 모르기 때문이지요.
처음에는 간단한 솔루션으로 시작해서 기능에 충실하고, 향후 데이터 량이 늘어남에 따라 적절한 조치를 취해주는것이 접근하기 쉽습니다.
그리고 요즘 PC로도 10G 이상의 데이터를처리하는데 충분합니다.
분산시스템은 테라급 데이터의 규모가 되었을때 생각해도 늦지 않습니다.

viper9의 이미지

답변 감사드립니다.

처음부터 그런 생각을 했던건 나중에 규모를 확장하거나 할 때 어려움이 있거나(혹은 아예 불가능하거나) 하는게 우려되서 였습니다.

일단 solr + 루씬을 알아봐야겠네요.

혹시 다른 의견도 있다면 더 듣고 싶네요.

kgcrom의 이미지

소스보면 아시겠지만 Solr도 Lucene 기반이에요.

간단하게 후딱 만드시기에는 sphinx도 좋을것 같아보여요.
http://sphinxsearch.com/docs/2.0.6/about.html

국산검색엔진이 오픈소스로 있는데 fastcat
http://dev.naver.com/projects/ossfastcat 도 고려하시면 좋을것 같네요.

흘러가고있는 지금 이 시간에 충실하자.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.