Skip to content

API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.

License

Notifications You must be signed in to change notification settings

murilonicemento/ocr-search

Repository files navigation

OCR Search API

API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.


Visão Geral

Este projeto visa criar um sistema de busca inteligente em documentos por meio de:

  • Upload de arquivos (PDF, PNG, JPG/JPEG)
  • Extração de texto com OCR (Tesseract)
  • Indexação de conteúdo e metadados no Elasticsearch
  • API de busca com filtros e relevância

Tecnologias Utilizadas

Camada Tecnologia
Backend ASP.NET Core Web API
OCR Tesseract OCR
Busca Elasticsearch
Containerização Docker + Docker Compose
Outros Scalar

Funcionalidades

  • Upload de arquivos PDF e imagens
  • Extração de texto com OCR
  • Indexação no Elasticsearch
  • API REST para busca textual
  • Highlight de termos encontrados
  • Filtros por tipo de documento, data, etc.

Estrutura do Projeto

/OCRSearch.Application       # Lógica de negócio
/OCRSearch.Domain            # Entidades
/OCRSearch.Infrastructure    # Elasticsearch
/OCRSearch.API               # Controllers e configuração
compose.yml                  # API + Elasticsearch + Kibana

Setup do Projeto

Pré-requisitos

Rodando API, Elasticsearch e Kibana com Docker

docker-compose up --build -d

Acesse o Kibana: http://localhost:5601

Rodando API localmente

docker-compose up --build -d
docker stop ocr-search-api
cd OCRSearch.Api && dotnet run

Acesse o Scalar: http://localhost:5174/scalar/v1


Endpoints

Upload de Documento

POST /Upload-File
Content-Type: multipart/form-data

Key:

  • file

Value:

  • Arquivo (PDF e imagem)

Buscar Documento

GET /Search-File?content=texto&size=

Query Params:

  • content: Termo de busca
  • size: Quantos documentos retornar

Retorno:

[
  {
    "id": "abc123",
    "name": "test.png",
    "extension": ".png",
    "url": "https://some-url",
    "extractedText": "bla bla bla bla bla",
    "uploadedAt": "2025-04-27 15:42:30"
  }
]

Licença

Projeto open-source sob a licença MIT. Sinta-se à vontade para usar, modificar e contribuir!

About

API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published