#002: Indexando o primeiro documento no Elasticsearch
Bruno Flegler Dal'Col
Posted on August 18, 2021
Certifique-se que o cluster foi iniciado. Como podemos ver nesse artigo #001: Iniciando no Elasticsearch.
Os documentos são indexados no elasticsearch no formato como JSON. Ex:
{
"id": 1,
"name": "Christopher M. Bass",
"age": 45,
"createdAt": "2021-08-17T02:36:39.104"
}
Use o curl
para indexar o documento. O mesmo será indexado no índice customers
. A palavra _doc
é reservada e iremos entende-lá melhor quando falarmos sobre mappings.
$ curl -X POST "http://localhost:9202/customers/_doc" -H "Content-Type: application/json" -d '
{
"id": 1,
"name": "Christopher M. Bass",
"age": 45,
"createdAt": "2021-08-17T02:36:39.104"
}'
O cluster confirma a indexação e como não atribuímos um identificador para o documento, o cluster cria automáticamente. Como podemos ver no atributo _id
.
{
"_index": "customers",
"_type": "_doc",
"_id": "TKMXUnsBDnCk96a8UqV7",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
Para atribuir um identificador basta informar um valor único depois do _doc/?
. Ex: http://localhost:9202/customers/_doc/1"
.
É importante frisar a diferença entre id
e _id
. O _id
é identificador único do elasticsearch, diferentemente de id
que pode conter ou não no documento indexado.
Para visualizar o documento indexado podemos fazer a pesquisa pelo identificador _id
. Ex:
$ curl -X GET "http://localhost:9202/customers/_doc/1"
{
"_index": "customers",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"id": 1,
"name": "Christopher M. Bass",
"age": 45,
"createdAt": "2021-08-17T02: 36: 39.104"
}
}
No próximo artigo iremos entender como retornar todos os documentos de um indíce. Até lá pratique bem essa etapa, ela é o coração para um bom aprendizado sobre elasticsearch.
Posted on August 18, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.