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에
는 중첩은 당신이 (인덱스가
Authors
및
AuthorAges
에 대한인지 확인하십시오)와 같은 해당 문서를 저장할 수, 수, 그렇게되지 "정규화 된"방식으로 사용하고 JOIN을 사용하여 위의 모든 필드를 가져올 수 있습니다. 예를 들어,
books
테이블은 고유 필드
title
및
pubYear
에만
book_id
기본 키가있을 수 있습니다. 기본 키가
author_id
이고
name
이고
age
인 다른 테이블
authors
이 있습니다. 그런 다음 표가
book_authors
이고 작성자를 책에 매핑합니다. 그런 다음 원하는 필드를 가져 오기 위해이 테이블을 조인합니다. "문서"세계에서는 이러한 모든 필드를 단일 문서로 가져옵니다.
아마도이 http://stackoverflow.com/questions/2095587/questions-about-solr-documents-and-some-more에 대한 답변이 도움이 될 수 있습니다. – Alfergon