2013-06-28 2 views
1

전 SOLR을 처음 접하고 설명서를 읽는 것이 좋습니다. 나는 그들이 용어 문서를 사용할 때 그들이 의미하는 바를 이해할 수 없다. 거의 처음에는 레코드처럼 느껴졌지 만 실제로는 실제 문서 (단어, pdf 등 ..) 또는 필드와 같은 다른 것들과 관련 될 수 있습니다. 누군가가 정말로 언급 한 내용을 명확히 할 수 있습니까?SOLR 용어의 문서는 무엇입니까?

예 : http://lucene.apache.org/solr/ 세부 기능 -> 스키마에서 문서로 무언가를 호출하고 있습니다. 또한 참조가없는 용어 페이지를 확인했습니다. http://wiki.apache.org/solr/SolrTerminology

+1

아마도이 http://stackoverflow.com/questions/2095587/questions-about-solr-documents-and-some-more에 대한 답변이 도움이 될 수 있습니다. – Alfergon

답변

2

MongoDB :-)를 조사했을 때 나는 document이라는 용어로 혼란스러워했습니다. https://en.wikipedia.org/wiki/Document-oriented_database을 볼 수 있습니다.

Solr 문서는 데이터베이스 테이블의 행과 대략 동일합니다. 그러나 Solr (및 MongoDB) 문서는 "집계"행으로 생각하는 것이 좋습니다. (NoSQL Distilled은 집계 지향 데이터베이스라는 용어를 사용합니다.)

DB 세계에서 쉽게 데이터를 검색 할 수 있도록 다른 테이블의 데이터를 집계 테이블에 저장할 수 있습니다. 마찬가지로 다른 DB 테이블의 데이터를 가져와 빠른 검색이나 서식있는 텍스트 분석 또는 패싯 또는 데이터베이스 (또는 기존 데이터 저장소)로 실행 불가능하거나 비효율적 인 다른 Solr 기능을 위해 Solr 문서에 저장할 수 있습니다.

Solr (및 Mongo) 문서를 JSON 개체로 생각하거나보다 간단하게 키 - 값 쌍으로 생각할 수도 있습니다. Mongo는 중첩 된 문서를 저장할 수 있지만 Solr은 저장하지 않습니다.

{ 
Title: NoSQL Distilled, 
Authors: [{name: Pramod Sadalage, age: 35}, 
      {name: Martin Fowler, age: 40}], 
PubYear: 2012, 
Preface: <preface contents>, 
BodyText: <entire content of the book> 
} 

당신은 Authors 필드 자체가이 개 문서가 포함되어 볼 수 있습니다

는 몽고 문서를 중첩.

{ 
Title: NoSQL Distilled, 
Authors: [Pramod Sadalage, Martin Fowler], 
AuthorAges: [35, 40], 
PubYear: 2012, 
Preface: <preface contents>, 
BodyText: <entire content of the book> 
} 

위의 문서는 데이터베이스의 세계에 저장 될 수있다 :

그러나 SOLR에

는 중첩은 당신이 (인덱스가 AuthorsAuthorAges에 대한인지 확인하십시오)와 같은 해당 문서를 저장할 수, 수, 그렇게되지 "정규화 된"방식으로 사용하고 JOIN을 사용하여 위의 모든 필드를 가져올 수 있습니다. 예를 들어, books 테이블은 고유 필드 titlepubYear에만 book_id 기본 키가있을 수 있습니다. 기본 키가 author_id이고 name이고 age 인 다른 테이블 authors이 있습니다. 그런 다음 표가 book_authors이고 작성자를 책에 매핑합니다. 그런 다음 원하는 필드를 가져 오기 위해이 테이블을 조인합니다. "문서"세계에서는 이러한 모든 필드를 단일 문서로 가져옵니다.