Ambas as respostas acima são ótimas!
Estou adicionando um exemplo de vários tipos em um índice. Suponha que você esteja desenvolvendo um aplicativo para procurar livros em uma biblioteca. Há poucas perguntas a serem feitas ao proprietário da biblioteca,
Questões:
Quantos livros você planeja armazenar?
Que tipo de livros você vai armazenar na biblioteca?
Como você vai procurar livros?
Respostas:
Estou planejando armazenar de 50 a 70 mil livros (aproximadamente)
Terei 15 mil a 20 mil livros relacionados à tecnologia (ciência da computação, engenharia mecânica, engenharia química e assim por diante), 15 mil livros históricos, 10 mil livros de ciências médicas. 10 mil livros relacionados ao idioma (inglês, espanhol e assim por diante)
Pesquise por nome do autor, sobrenome do autor, ano de publicação, nome do editor. (Isso fornece uma idéia sobre quais informações você deve armazenar no índice)
A partir das respostas acima, podemos dizer que o esquema em nosso índice deve se parecer com isso.
// Este não é o mapeamento exato, apenas para o exemplo
"yearOfPublish":{
"type": "integer"
},
"author":{
"type": "object",
"properties": {
"firstName":{
"type": "string"
},
"lastName":{
"type": "string"
}
}
},
"publisherName":{
"type": "string"
}
}
Para alcançar o que precede, podemos criar um índice chamado Livros e podemos ter vários tipos.
Índice: Livro
Tipos: Ciência, Artes
(Ou você pode criar muitos tipos, como Tecnologia, Ciência Médica, História, Idioma, se você tiver muito mais livros)
O importante a observar aqui é que o esquema é semelhante, mas os dados não são idênticos. E a outra coisa importante é o total de dados que você está armazenando.
Espero que o exposto acima ajude a escolher tipos diferentes em um Índice, se você tiver um esquema diferente, considere um índice diferente. Índice pequeno para menos dados. grande índice para big data :-)