DocuBrowse 0.9.0: Local AI Document Search with SQLite FTS5 and Ollama

DocuBrowse v0.9.0 is a local-first document search engine that turns a messy pile of files into a searchable knowledge base. It indexes PDFs, ebooks, Word documents, presentations, spreadsheets, and source code, then lets you search by keyword or meaning—all on your own machine, no internet required.

Dual Search Modes

DocuBrowse offers three search modes: keyword (SQLite FTS5), semantic (Ollama embeddings), and hybrid (70% semantic + 30% keyword). The hybrid mode merges and re-ranks results by relevance score (0-100%). Search latency is under 150ms typical.

AI Synopsis on Demand

Click any document title to get a Kindle-style book-jacket synopsis generated by Ollama's dolphin3:latest model. Synopses are cached in the database after first generation. Semantic search embeddings use a separate model: nomic-embed-text:latest.

Supported Formats

  • PDF: pdfplumber (preferred) with pypdf fallback; scanned PDFs detected and routed to ocr_list_pdfs.txt
  • Word: python-docx (paragraphs, tables, metadata)
  • PowerPoint: python-pptx (slide text, notes)
  • Excel: openpyxl (cell values, sheet names)
  • Ebooks: EPUB (ebooklib), MOBI/AZW3 (mobi + Calibre fallback), DRM-encrypted AZW (metadata only)
  • HTML, TXT, Markdown

PII Protection

Post-ingest scanner detects SSN, credit card numbers, bank routing/account numbers, DOB, MRN, driver license, and passport patterns. Matching documents are removed from the index and permanently blacklisted.

Installation and Quick Start

DocuBrowse 0.9.0 ships as RPM, DEB, tarball, Windows zip, and macOS dmg. Install via package manager or extract tarball and run sudo ./install.sh. Prerequisites: Python 3.9+, Ollama (auto-installed if missing by docubrowser start), and Calibre for MOBI/AZW3.

First run (dev clone):

./docubrowser.py rescan
./docubrowser.py start
./docubrowser.py open

On installed systems, use docubrowser command instead.

CLI Commands

  • scan [TYPE ...]: Index documents without embeddings
  • rescan [TYPE ...]: Index + generate embeddings
  • scan-file --file PATH: Index a single file (useful for retrying blacklisted files)
  • embed: Generate/refresh embeddings for un-embedded documents
  • purge: Scan index for PII and remove matching documents
  • duplist / dupclean: Find and remove duplicate documents (exact SHA256 and near-duplicates with cosine >=97%)
  • scan-missing: Opt-in cleanup for moved/deleted files

Performance and Memory Safety

  • Parallel PDF extraction with ProcessPoolExecutor (physical-core-aware worker count)
  • Memory-safe: kernel-enforced RLIMIT_AS (6 GB/worker) + pause/resume on free-RAM threshold

Configuration and UI

Settings page at /settings manages document directories (with live browser), ignored directories, working directory, and port. UI features dark/light theme, paginated results (50 docs/page), alphabetic index bar, tag cloud, relevance score badges, and file launch via xdg-open.

Under the Hood

  • SQLite FTS5 for keyword search
  • Ollama + nomic-embed-text for semantic embeddings
  • Ollama + dolphin3 for synopsis generation
  • PII scanner using regex patterns

Why It Matters

DocuBrowse is a fully offline, local-first document search tool that respects privacy. It combines traditional full-text search with modern AI embeddings, all without API keys or recurring costs. For developers managing large document collections, it offers a self-hosted alternative to cloud-based solutions.

Next Steps

Download the appropriate package from the Releases page and try it. Run docubrowser rescan on your document directory, then docubrowser start to explore. If you find issues, the project is open source—contribute on GitHub.