Ir para o conteúdo

API de Indexação (Elasticsearch)

Esta API serve como uma interface para interagir com um cluster Elasticsearch. Ela abstrai as operações comuns de gerenciamento de índices (bancos de dados do ES), documentos (registros) e a execução de pesquisas. Todas as rotas operam sob o prefixo /lbes.

Nota – Autenticação Todos os endpoints descritos abaixo requer autenticação via JWT.
Para acessá-los, é necessário enviar um token de autorização no cabeçalho da requisição:

Authorization: Bearer <seu_token_jwt>

Saúde e Utilitários do Cluster

Endpoints para obter informações gerais e realizar verificações no cluster Elasticsearch.

1. Obter Status de Saúde do Cluster

Verifica a saúde e o status geral do cluster Elasticsearch.

Endpoint:

GET /lbes/indexes/_health

2. Listar Todos os Índices

Retorna uma lista de todos os índices existentes no cluster.

Endpoint:

GET /lbes/indexes/_all

3. Validar JSON para Indexação

Endpoint de utilidade para verificar se um JSON é válido para ser indexado no Elasticsearch.

Endpoint:

POST /lbes/saves

Corpo da Requisição (application/json): O objeto JSON que você deseja validar.


Gerenciamento de Índices

Operações que afetam um índice como um todo (criação, exclusão, reindexação, etc.).

4. Criar um Índice com Configurações

Cria um novo índice com mappings (schema) e settings (configurações) personalizados.

Endpoint:

POST /lbes/:index/_config

Corpo da Requisição (application/json):

{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "titulo": { "type": "text" },
      "autor": { "type": "keyword" },
      "ano_publicacao": { "type": "integer" }
    }
  }
}

5. Criar um Índice Simples

Cria um novo índice com as configurações padrão do Elasticsearch.

Endpoint:

POST /lbes/saveindex/:index

6. Obter Informações de um Índice

Retorna as configurações e os mappings de um índice específico.

Endpoint:

GET /lbes/:index

7. Obter Mappings de um Índice

Retorna apenas os mappings (schema) de um índice.

Endpoint:

GET /lbes/:index/mappings

8. Obter Configurações de um Índice

Retorna apenas as settings (configurações) de um índice.

Endpoint:

GET /lbes/:index/settings

9. Reindexar Dados

Copia documentos de um índice antigo para um novo. Útil para aplicar novos mappings ou settings.

Endpoint:

POST /lbes/reindex/:oldindex/:newindex

10. Deletar um Índice

Operação Destrutiva

Esta ação remove permanentemente um índice e todos os documentos contidos nele. Use com extremo cuidado.

Endpoint:

DELETE /lbes/:index

Gerenciamento de Documentos

Operações para criar, ler, atualizar, deletar e pesquisar documentos dentro de um índice.

11. Inserir ou Atualizar um Documento (Upsert)

Cria um novo documento ou atualiza um existente se o ID já for fornecido.

Endpoint:

POST /lbes/:index/doc/:id

Corpo da Requisição (application/json): O documento JSON a ser salvo.

{
  "titulo": "A Arte da Guerra",
  "autor": "Sun Tzu",
  "ano_publicacao": -500
}

12. Inserir um Documento (ID Opcional)

Insere um novo documento. O ID pode ser fornecido como parâmetro de query; se omitido, o Elasticsearch gerará um automaticamente.

Endpoint:

POST /lbes/:index/doc?id=<id_opcional>

13. Buscar Documento por ID

Recupera um único documento com base no seu ID.

Endpoint:

GET /lbes/:index/doc/:id

14. Listar Documentos de um Índice

Retorna uma lista paginada de documentos de um índice.

Endpoint:

GET /lbes/:index/doc
s

15. Pesquisar Documentos

Executa uma busca complexa usando a Query DSL (Domain Specific Language) do Elasticsearch.

Endpoint:

POST /lbes/:index/search

Corpo da Requisição (application/json): Um objeto de busca do Elasticsearch.

{
  "query": {
    "match": {
      "autor": "Sun Tzu"
    }
  }
}

16. Deletar um Documento

Remove um documento específico de um índice com base no seu ID.

Endpoint:

DELETE /lbes/:index/doc/:id