forked from fa/breadcrumb-the-shire
1.1 KiB
1.1 KiB
Search + Upload TODO (Internal)
Goal: Unified search across DB data and file contents (PDF, DOCX), starting with MariaDB FULLTEXT and private file storage.
MVP Steps
- Create
documentstable (uuid, original_name, mime, size, storage_path, content_text, created). - Add FULLTEXT index on
content_text(and later title/metadata fields if needed). - Build
FileUploadService:- Validate size/type (PDF/DOCX).
- Store outside
/web(e.g.storage/uploads/{uuid}/file.ext). - Extract text:
- PDF:
pdftotext(poppler-utils). - DOCX: unzip + parse
word/document.xml(fallback: LibreOffice headless).
- PDF:
- Save
content_text+ metadata.
- Add upload action + form (admin area).
- Add search endpoint:
- Search DB entities.
- Search
documents.content_text. - Merge results into one list.
Future Enhancements
- Async extraction (queue/worker) for large files.
- Dedicated search engine (Meilisearch/Typesense) when scale/relevance needs grow.
- Result ranking with field weighting (title > body).
- Optional language detection / stemming.