DEV Community

Cover image for #002: Indexando o primeiro documento no Elasticsearch
Bruno Flegler Dal'Col
Bruno Flegler Dal'Col

Posted on • Updated on

#002: Indexando o primeiro documento no Elasticsearch

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"
}
Enter fullscreen mode Exit fullscreen mode

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"
}'
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode
{
  "_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"
  }
}
Enter fullscreen mode Exit fullscreen mode

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.

Discussion (0)