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 -d
Acesse o Kibana: http://localhost:5601
docker-compose up --build -d
docker stop ocr-search-api
cd OCRSearch.Api && dotnet run
Acesse o Scalar: http://localhost:5174/scalar/v1
POST /Upload-File
Content-Type: multipart/form-data
Key:
- 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!