답변:
두 방법 모두에 다른 의미가 있습니다.
Elasticsearch의 기본 설정을 사용한다고 가정 할 때 각 모델에 대해 1 개의 인덱스를 사용하면 1 개의 인덱스에 5 개의 샤드가 사용되고 5 개의 데이터 모델에 25 개의 샤드가 사용되므로 샤드 수가 크게 증가합니다. 1 인덱스에 5 개의 객체 유형이 있으면 여전히 5 개의 샤드를 사용합니다.
각 데이터 모델을 인덱스로 사용할 때의 의미 :
인덱스 내에서 각 데이터 모델을 개체 유형으로 사용하는 의미 :
너무 많은 데이터와 작은 데이터가 무엇인지 묻는다면? 일반적으로 프로세서 속도와 하드웨어의 RAM, Elasticsearch에 대한 매핑의 각 변수 내에 저장하는 데이터의 양 및 쿼리 요구 사항에 따라 다릅니다. 쿼리에 많은 패싯을 사용하면 응답 시간이 크게 느려집니다. 이에 대한 직접적인 대답은 없으며 필요에 따라 벤치마킹해야합니다.
By default elasticsearch rejects search requests that would query more than 1000 shards. The reason is that such large numbers of shards make the job of the coordinating node very CPU and memory intensive. It is usually a better idea to organize data in such a way that there are fewer larger shards. In case you would like to bypass this limit, which is discouraged, you can update the action.search.shard_count.limit cluster setting to a greater value.
"
조나단의 대답은 당시에는 옳았지만, 전 세계는 발전해 왔으며 이제 ElasticSearch를 사용하는 사람들은 여러 유형에 대한 지원을 중단 할 장기적인 계획을 가지고있는 것 같습니다.
원하는 곳 : 부모 / 자식을 지원하면서 Elasticsearch에서 유형 개념을 제거하려고합니다.
따라서 새 프로젝트의 경우 인덱스 당 단일 유형 만 사용하면 최종적으로 ElasticSearch 6.x로 쉽게 업그레이드 할 수 있습니다.
조나단의 대답은 훌륭합니다. 고려해야 할 몇 가지 다른 점을 추가하려고합니다.
위의 답변 모두 훌륭합니다!
색인에 여러 유형의 예를 추가하고 있습니다. 라이브러리에서 책을 검색하는 앱을 개발한다고 가정합니다. 도서관 소유자에게 물어볼 질문은 거의 없습니다.
질문 :
몇 권의 책을 보관할 계획입니까?
어떤 종류의 책을 도서관에 보관 하시겠습니까?
책을 어떻게 검색 하시겠습니까?
답변:
50k – 70k 권의 책을 저장할 계획입니다.
15k-20k 기술 관련 서적 (컴퓨터 과학, 기계 공학, 화학 공학 등), 15k의 역사 서적, 10k의 의료 과학 서적을 보유하게됩니다. 언어 관련 서적 10k (영어, 스페인어 등)
저자 이름, 저자 성, 출판 연도, 출판사 이름으로 검색합니다. (이것은 색인에 어떤 정보를 저장해야하는지에 대한 아이디어를 제공합니다)
위의 답변에서 우리는 인덱스의 스키마가 다음과 같이 보일 것이라고 말할 수 있습니다.
// 이것은 단지 예제를위한 정확한 매핑이 아닙니다.
"yearOfPublish":{
"type": "integer"
},
"author":{
"type": "object",
"properties": {
"firstName":{
"type": "string"
},
"lastName":{
"type": "string"
}
}
},
"publisherName":{
"type": "string"
}
}
위의 목적을 달성하기 위해 Books라는 하나의 인덱스를 만들 수 있으며 다양한 유형을 가질 수 있습니다.
색인 : 도서
유형 : 과학, 예술
또는 책이 더 많은 경우 기술, 의학, 역사, 언어와 같은 여러 유형을 만들 수 있습니다.
여기서 주목해야 할 것은 스키마는 비슷하지만 데이터는 동일하지 않다는 것입니다. 그리고 다른 중요한 것은 저장하는 총 데이터입니다.
위의 내용이 인덱스에서 다른 유형으로 갈 때 도움이되기를 바랍니다. 스키마가 다르면 다른 인덱스를 고려해야합니다. 적은 데이터를위한 작은 인덱스. 빅 데이터에 대한 빅 인덱스 :-)