Compreensão Index e Mapping em Elasticsearch

Claro! Aqui está a tradução da explicação e exemplos para Index e Mapping em Elasticsearch:

Index em Elasticsearch

Um Index in Elasticsearch é semelhante a um banco de dados em sistemas de gerenciamento de banco de dados(DBMS) tradicionais. Ele armazena uma coleção de documentos relacionados. Cada um Index normalmente corresponde a um tipo específico de dados em seu aplicativo. Por exemplo, em um aplicativo de e-commerce, você pode criar um Index para armazenar informações sobre produtos, outro Index para armazenar informações sobre usuários e pedidos.

Cada Index um Elasticsearch é dividido em fragmentos menores para distribuição de dados. Um Shard é uma pequena parte de um Index, e cada Shard pode ser armazenado em um nó separado dentro de um Elasticsearch cluster. A divisão de dados em estilhaços otimiza o desempenho de pesquisa e consulta e aumenta a escalabilidade do sistema.

Por exemplo, para criar um novo Index nomeado products  em Elasticsearch, você pode usar a API ou ferramentas de gerenciamento como o Kibana para executar o seguinte comando:

PUT /products  
{  
  "settings": {  
    "number_of_shards": 3,  
    "number_of_replicas": 2  
  }  
}  

No exemplo acima, criamos um Index products com 3 shard e 2 replica de cada shard para garantir disponibilidade e backup dos dados.

 

Mapping em Elasticsearch

Mapping é o processo de definir como Elasticsearch armazena e processa dados em um arquivo Index. Quando você adiciona um novo documento a um Index, Elasticsearch usa Mapping para determinar o tipo de dados de cada campo no documento. Isso ajuda Elasticsearch a entender como processar e pesquisar dados em diferentes campos.

Por exemplo, se tivermos um Index products e quisermos definir Mapping para os campos name(nome do produto) e price  (preço do produto) os tipos texto e flutuante, respectivamente, podemos executar o seguinte comando:

PUT /products/_mapping  
{  
  "properties": {  
    "name": {  
      "type": "text"  
    },  
    "price": {  
      "type": "float"  
    }  
  }  
}  

No exemplo acima, definimos Mapping para o products  Índice, com o name  campo tendo o tipo de dados text e o campo preço tendo o tipo de dados float. Isso garante que ao Elasticsearch receber novos documentos para o products  Índice, ele armazenará e processará os name  campos e "preço" de acordo com os tipos de dados definidos.

Index e Mapping desempenham funções cruciais na organização e gerenciamento de dados em Elasticsearch. Eles ajudam Elasticsearch a entender e processar dados com eficiência, otimizar as operações de pesquisa e consulta e fornecer recursos de escalabilidade flexíveis para o sistema.