[ElasticSearch] O que são "shards"?

elasticsearch

#1

Boa noite.

Não entendi muito a explicação do livro no que se refere a questão dos “shards”. Vocês poderiam me ajudar?

E porque o padrão de 5 “shards”?

Obrigado.


#2

Oi, Rafael, tudo bem? Vamos as suas dúvidas, bom, shards, falando de uma forma bem direta, são as “partes” em que um índice de elasticsearch é repartida. Por padrão, quando criamos um índice, 5 shards são criados, esses shards são índices do Apache Lucene, que o elastic utiliza por debaixo dos panos. Sendo assim, você pode entender que cada shard é um índice do Lucene, onde são indexados e pesquisados os documentos, blz?

Ah e caso você esteja se perguntando como o elasticearch distribui os documentos pelos shards, ele faz isso através de um controle de hash, onde ele gera uma hash do documento e a partir da hash gerada o documento é encaminhado para um dos shards. Você pode encontrar mais informações sobre shards na documentação da Elastic:

https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html#_shards_amp_replicas

abs


#3

Um último complemento que esqueci de falar, por padrão o elastic sempre cria os índices com 5 shards, porém você pode aumentar ou diminuir essa quantidade no ato de criação dos índices, através da propriedade number_of_shards. Nos valores default, alguns desses shards são utilizados como shards de réplicas, utilizados para armazenar as cópias de contingência do cluster. Você pode encontrar mais informações sobre como configurar os shards no ato de criação dos índices no link abaixo:

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html


#4

Ficou bem claro Alexandre.
Valeu.


#5

Eu, acostumado a usar o index/type e isso será removido, eu estava tentando usar o shard como o novo type. Faz sentido isso?