#009: Como definir um template para um índice
Bruno Flegler Dal'Col
Posted on February 10, 2022
No artigo anterior #008: Como definir o mapeamento no Elasticsearch definimos um mapping diretamente no índice, porém podemos criar um template e criar o índice a partir dele. Essa estratégia é útil quando criamos índices temporais.
PUT /_template/customers
{
"index_patterns": [
"customers_*"
],
"aliases": {
"customers": {}
},
"mappings": {
"properties": {
"id": {
"type": "text"
},
"age": {
"type": "integer"
},
"email": {
"type": "text"
},
"name": {
"type": "text"
},
"createdAt": {
"type": "date"
}
}
}
}
O campo index_patterns
será usado para corresponder aos nomes dos índices durante a criação. Exemplo: customers_2022_02
, customers_2022_03
, uma vez que o nome do índice corresponde ao pattern customers_*
o índice é criado com o mapping definido no template.
PUT /customers_2022_02
GET /customers_2022_02/_mapping
{
"customers_2022_02" : {
"mappings" : {
"properties" : {
"age" : {
"type" : "integer"
},
"createdAt" : {
"type" : "date"
},
"email" : {
"type" : "text"
},
"id" : {
"type" : "text"
},
"name" : {
"type" : "text"
}
}
}
}
}
O campo aliases
também é bem útil quando queremos buscar em todos índices criados a partir do template. Exemplo: customers_2022_02
, customers_2022_03
, podemos pesquisar em ambos índices utilizando apenas o nome customers
.
GET /customers/_search
{
"query": {
"match_all": {}
}
}
Sua vez de praticar, te vejo em breve.
Posted on February 10, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.