program tip

Lucene / Solr과 같은 문서 저장소가 NoSQL 대화에 포함되지 않는 이유는 무엇입니까?

radiobox 2020. 11. 28. 08:57
반응형

Lucene / Solr과 같은 문서 저장소가 NoSQL 대화에 포함되지 않는 이유는 무엇입니까?


우리 모두는 최근 no-SQL 솔루션의 과대 광고를 접했습니다. MongoDB, CouchDB, BigTable, Cassandra 등은 SQL이없는 옵션으로 나열되었습니다. 예를 들면 다음과 같습니다.

http://architects.dzone.com/articles/what-nosql-store-should-i-use

그러나 3 년 전에 동료와 저는 Lucene.NET을 no-SQL의 설명에 맞는 것처럼 사용하고있었습니다. 우리는 사용자가 입력 한 검색어에만 사용하지 않았습니다. 우리는이를 사용하여 몇 개의 재 인덱싱 된 RDBMS 테이블 데이터를 매우 성능있게 만들었습니다. 우리는 이러한 인덱스를 관리하고 호출 가능하게 만들기 위해 자체 .NET 일종의 Solr 서비스를 구현했습니다. 회사를 떠났을 때 팀은 Solr로 전환했습니다. (알지 못하는 사람들을 위해 Solr은 REST 호출 가능 쿼리 및 인덱스 덤프로 Lucene을 래핑하는 웹 서비스입니다.)

내가 이해하지 못하는 것은 Solr이 일반적인 비 SQL 솔루션 옵션 목록에 포함되지 않는 이유는 무엇입니까? 여기에 뭔가 빠졌나요? Solr이 CouchDB 등과 비교할 수없는 기술적 이유가 있다고 가정하고 실제로 CouchDB가 Lucene을 데이터 저장소로 사용한다는 것을 이해합니다 (예?).하지만 Solr의 자격을 상실하는 것은 무엇입니까?

나는 어떤 종류의 Solr 팬보이 또는 다른 것으로 묻지 않고 Solr 등이 왜 SQL이 아닌 정의에 맞지 않는지 이해하지 못하며 Solr이 기술적으로 정의에 맞다면 어떻게 될까요 사람들이 푸우 푸우? 내가 구축 한 솔루션에 대해 Lucene 기반 솔루션 (예 : Solr)을 계속 사용해야하는지 아니면 이러한 다른 옵션으로 더 많은 연구를 수행해야하는지 결정하는 데 어려움이 있기 때문에 질문하고 있습니다.


소설 쓰기에 대한 작가 Ursula K. LeGuin과의 인터뷰를 들었습니다. 면접관은 그녀에게 다른 장르 의 글을 쓰는 작가에 대해 물었습니다 . 한 작가는 로맨스 작가, 다른 작가는 미스터리 작가, 다른 작가는 공상 과학 작가가됩니까? LeGuin은 다음과 같이 설명했습니다.

장르는 콘텐츠가 아니라 마케팅에 관한 것입니다.

그것은 놀라운 진술이었습니다.

기술 솔루션에도 동일하게 적용된다고 생각합니다. NoSQL 운동은 지금 마케팅 에너지로 가득 차 있기 때문에 주목을 받고 있습니다. Hadoop, CouchDB, MongoDB와 같은 NoSQL 데이터 저장소는 비즈니스를 성장시킬 수 있도록 솔루션을 새롭고 혁신적이고 흥미 진진한 것으로 밀어 붙이는 상업적 벤처 기업을 보유하고 있습니다. "NoSQL"이라는 용어는 가치를 설명하는 데 도움 이되는 마케팅 브랜드 입니다.

Lucene / Solr가 기술적으로 NoSQL 문서 저장소와 매우 유사하다는 것은 맞습니다. 문서 모음에서 반드시 일관 적이 지 않은 필드가있는 비정규 화 된 문서 모음 (용어)입니다. 모든 필드 또는 특정 필드를 검색 할 수 있도록 정교한 방식으로 인덱싱됩니다.

그러나 그것은 Lucene이 그 가치를 설명하기 위해 사용하는 장르가 아닙니다. 그들은 Apache Foundation에서 관리하기 때문에 시장과 비즈니스를 성장시키는 동일한 사명을 가지고 있지 않습니다. 그들은 기술이 다른 방식으로 사용될 수 있지만 전체 텍스트 검색의 사용 사례에 집중하는 것을 기쁘게 생각합니다. 그들은 소프트웨어 성공의 신조를 따르고 있습니다 : 한 가지 일을하고 잘하십시오.


더 많은 Google 검색을 수행 한 후이 문서가이를 잘 요약했다고 생각합니다.

https://web.archive.org/web/20100504055638/http://www.lucidimagination.com/blog/2010/04/30/nosql-lucene-and-solr/

예를 들어, Lucene / Solr NoSql이며 NoSql의 더 성숙한 "선조"중 하나로 간주 될 수 있습니다. "no-SQL"이라는 용어를 발명하지 않았고 사용자가이 용어를 사용하지 않았기 때문에 가치있는 NoSql 과대 광고를 얻지 못하기 때문에 과대 광고 시스템이 간과했습니다.


nosql 목록에서 떨어지는 solr / lucene의 가장 적절한 특성은 최근까지 lucene을 실시간 시스템으로 작동시키는 것이 고통 스러웠 기 때문이라고 생각합니다. 성능이 뛰어난 애플리케이션의 일반적인 워크 플로는 증분 업데이트를 일괄 적으로 인덱싱하고 5 분마다 인덱스를 업데이트하는 것이 었습니다.


나는 stimpy77이 NoSQL이 브랜딩 이라는 것에 부분적으로 옳다고 생각합니다.. 또한 NoSQL은 SQL 기반 솔루션보다 더 간단하고 쉬운 데이터 스토리지 플랫폼임을 의미합니다. 그리고 Solr / Lucene은 몇 가지 측면 (데이터 저장)을 공유하지만 Solr / Lucene이 관계가있는 모든 것에 대한 기본 데이터 저장소로 사용될 수 있다고 생각하는 것은 실제로 표시를 놓친다고 생각합니다. 물론 많은 문서가 여기에 던져 질 수 있으며 강력한 검색으로 문서를 되돌릴 수 있습니다. 그러나 관계를 원하면 CouchDB와 같은 다른 것들이 어떤 종류의 쿼리 구문을 가진 훨씬 더 잘합니다. 이 경우 검색은 반창고 솔루션입니다. " 'car'라는 단어로 태그가 지정된 모든 문서 찾기"사용 사례를 생각해보십시오. 데이터에 구조가 있다면 태그 카에 대한 문서를 가져 와서 모든 사람을 끌어 당기는 것이 쉽습니다. fq = tag : 'car'를 포함하는 검색 쿼리에 의존하는 것과 비교. 관계가 적을수록 검색이 더욱 강력 해지지 만 관계가 많을수록 CouchDB 및 형제와 같은 데이터 저장소가 더 좋습니다. 그래서 여전히 CouchDB와 친구들이 Solr과 짝을 이루고 있고 그 반대의 경우도 마찬가지입니다! 각자가 가장 잘하는 일을하게하십시오.

물론, Solr에 소스 데이터를 저장하는 것을 활용할 수 없다는 것은 아닙니다. 이것은 사용하기에 강력한 도구가 될 수 있습니다!


운영 측면에서 no sql과 solr의 주요 차이점은 내 의견으로는 다음과 같습니다.

  1. Solr에는 중간 데이터 저장소 (데이터베이스 또는 XML 파일)가 필요하지만 nosql 자체는 직선 데이터 저장소입니다.
  2. solr에 대한 지속적인 쓰기를 수행 할 수 없으며 (solr 4.0은 해당 지원을 제공하는 것으로 보입니다) 2 분마다 최대 200 개 레코드 만 인덱싱 할 수 있습니다 (높은 처리량 쓰기의 경우 매우 느리고 중간 저장소에 대해 강제 됨). .
  3. 문서에 저장된 내용을 변경할 때 스키마를 변경 / 정의해야합니다. NoSQL에는 그러한 정의가 없습니다.
  4. Solr 인덱스는 인덱스 크기가 커질 때 성능에 영향을 미치는 반면 NoSQL은 이에 최적화되어 있습니다 (또는 주장 :))
  5. Solr에는 기본 lucene 검색 알고리즘이 번들로 포함되어 있지만 NoSQL에서는이를 빌드해야합니다. 이것은 solr에서 제공하는 웅장한 패싯 검색 또는 초고속 문서 검색에 적용됩니다.

마지막으로 몇 가지 요점은 NoSQL에서 solr가 나오는 마케팅 전략으로 여기에 언급 된 것과 다른 점입니다.

Lucene / Solr-Solr은 내부적으로 lucene을 사용하고 추가 기능이 있으므로 Solr를 사용할 예정입니다. 따라서 Solr은 기본적으로 새로운 constume을 사용하여 Lucene으로 업그레이드되었습니다.

  • Solr은 주로 검색 엔진의 패싯을 만들고 일반 텍스트를 인덱싱하는 데 사용됩니다.

  • Solr는 대부분의 데이터베이스를 사용하여 데이터를 저장할 수 있습니다. 디스크를 직접 사용하기 때문에 데이터를 solr에 보관하는 것은 일관성이 없습니다.

  • NoSQL 데이터베이스는 Solr에 비해 배우기 쉽습니다. Solr은 많은 구성과 개념을 가지고 있습니다 (예 : 필드).

  • 성능은 b / w를 고려해야합니다. Solr는 다른 NoSQL 데이터베이스에 비해 높은 성능을 제공합니다.

참고 : Solr을 일부 데이터베이스와 결합하면 최상의 성능을 제공합니다.

요약 : Solr은 또한 모든 NoSQL 데이터베이스의 이전 버전 인 NoSQL 데이터 저장소입니다. 다른 사람들의 과대 광고를 얻지 못했습니다. 그러나 성능과 힘으로 인해 여전히 현장에 있습니다.

참고 URL : https://stackoverflow.com/questions/3339793/why-are-document-stores-like-lucene-solr-not-included-in-nosql-conversations

반응형