API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.
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
| Camada | Tecnologia |
|---|---|
| Backend | ASP.NET Core Web API |
| OCR | Tesseract OCR |
| Busca | Elasticsearch |
| Containerização | Docker + Docker Compose |
| Outros | Scalar |
- 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.
/OCRSearch.Application # Lógica de negócio
/OCRSearch.Domain # Entidades
/OCRSearch.Infrastructure # Elasticsearch
/OCRSearch.API # Controllers e configuração
compose.yml # API + Elasticsearch + Kibana- .NET 9 SDK (se quiser rodar localmente)
- Docker
docker-compose up --build -dAcesse o Kibana: http://localhost:5601
docker-compose up --build -d
docker stop ocr-search-api
cd OCRSearch.Api && dotnet runAcesse o Scalar: http://localhost:5174/scalar/v1
POST /Upload-File
Content-Type: multipart/form-dataKey:
- file
Value:
- Arquivo (PDF e imagem)
GET /Search-File?content=texto&size=Query Params:
content: Termo de buscasize: 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"
}
]Projeto open-source sob a licença MIT. Sinta-se à vontade para usar, modificar e contribuir!