https://github.com/murilonicemento/ocr-search
API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.
https://github.com/murilonicemento/ocr-search
aspnet-core csharp docker dotnet elasticsearch open-api scalar web-api
Last synced: 3 months ago
JSON representation
API para upload de documentos (PDFs e imagens), extração de texto via OCR e indexação no Elasticsearch, permitindo busca full-text.
- Host: GitHub
- URL: https://github.com/murilonicemento/ocr-search
- Owner: murilonicemento
- License: mit
- Created: 2025-04-12T19:26:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-27T21:37:29.000Z (about 1 year ago)
- Last Synced: 2025-07-08T13:09:55.406Z (about 1 year ago)
- Topics: aspnet-core, csharp, docker, dotnet, elasticsearch, open-api, scalar, web-api
- Language: C#
- Homepage:
- Size: 10.2 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
- [x] Upload de arquivos PDF e imagens
- [x] Extração de texto com OCR
- [x] Indexação no Elasticsearch
- [x] API REST para busca textual
- [x] Highlight de termos encontrados
- [ ] Filtros por tipo de documento, data, etc.
---
## Estrutura do Projeto
```bash
/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
- [.NET 9 SDK](https://dotnet.microsoft.com/en-us/download) (se quiser rodar localmente)
- [Docker](https://www.docker.com/)
### Rodando API, Elasticsearch e Kibana com Docker
```bash
docker-compose up --build -d
```
Acesse o Kibana: [http://localhost:5601](http://localhost:5601)
### Rodando API localmente
```bash
docker-compose up --build -d
docker stop ocr-search-api
cd OCRSearch.Api && dotnet run
```
Acesse o Scalar: [http://localhost:5174/scalar/v1](http://localhost:5174/scalar/v1)
---
## Endpoints
### Upload de Documento
```http
POST /Upload-File
Content-Type: multipart/form-data
```
**Key:**
- file
**Value:**
- Arquivo (PDF e imagem)
---
### Buscar Documento
```http
GET /Search-File?content=texto&size=
```
**Query Params:**
- `content`: Termo de busca
- `size`: Quantos documentos retornar
**Retorno:**
```json
[
{
"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!