O que são tipos de mapeamento?
No Elasticsearch, cada documento pertence a um índice e um tipo. Um índice pode ser considerado como um banco de dados, enquanto um tipo pode ser visto como uma tabela quando comparado a um banco de dados relacional. Um tipo de mapeamento era uma partição lógica de um objeto com outros objetos que pertenciam a outros tipos de mapeamento no mesmo índice.
Cada tipo de mapeamento tem seus próprios campos. Por exemplo, um tipo de do utilizador pode ter campos a seguir:
"ID": 123,
"Nome": "Shubham",
"Site": 1
Outro tipo de mapeamento no mesmo índice local na rede Internet pode ter campos a seguir que são completamente diferentes do do utilizador tipo:
"ID": 1,
"Title": "Linuxhint",
"Link": "https: // linuxhint.com/"
Ao procurar um documento em um índice, a pesquisa poderia ter sido limitada a um único documento especificando um único campo como:
Obtenha idx_name/usuário, site/_search
"consulta":
"corresponder":
"ID": 1
O _tipo O campo dos documentos foi combinado com o seu _eu ia para gerar um _uid Campo então documentos com o mesmo _eu ia poderia existir em um único índice.
Leia o Elasticsearch Tutorial para iniciantes para obter uma compreensão mais profunda da arquitetura ElasticSearch e começar com ele com a instalação Elasticsearch no Ubuntu.
Por que os tipos de mapeamento estão sendo removidos?
Assim como o que dissemos acima enquanto explicava como o índice e os tipos eram semelhantes a um banco de dados e uma tabela em um banco de dados relacional, a equipe Elasticsearch pensou o mesmo, mas esse não foi o caso, pois o Lucene Engine não segue a mesma analogia. Isso é por causa dos seguintes motivos:
Alternativas aos tipos de mapeamento
Embora a decisão tenha sido tomada, ainda precisamos separar diferentes tipos de dados. Agora, a primeira alternativa é Documentos separados em seu próprio índice que tem duas vantagens:
Outra alternativa para separar os dados é manter um costume _tipo Campo em cada documento que inserimos, como:
Coloque db_name/doc/123
"Tipo": "Usuário",
"ID": 123,
"Nome": "Shubham",
"Site": 1
Coloque DB_NAME/DOC/SITE
"Tipo": "Site",
"ID": 1,
"Title": "Linuxhint",
"Link": "https: // linuxhint.com/"
Este é um excelente uso se você estiver procurando uma solução personalizada completa.
Agendal para a remoção de tipos de mapeamento
Como remover os tipos de mapeamento é uma grande mudança, a equipe da ES está fazendo o processo lentamente. Aqui está um cronograma para o lançamento extraído de elástico.CO:
Conclusão
Nesta lição, analisamos por que os tipos de mapeamento do Elasticsearch foram removidos e não serão completamente suportados nas versões próximas.