Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com
Python 51.9%
TypeScript 32.7%
JavaScript 4.8%
CSS 4.1%
Shell 2.9%
HTML 1.8%
SQL 1.5%
1-- Trouve-KA — migration 005 : index pour la page /stats2-- Author: Simon-Pierre Boucher3-- Contact: contact@spboucher.ai4--5-- Le tableau de bord /api/stats/dashboard agrège par plage temporelle :6-- 1) documents.first_indexed_at n'était pas indexé (séries « indexées/jour »,7-- cumul, heatmap) — sur 1 M+ lignes, chaque refresh du cache scannait tout.8-- 2) crawl_attempts : index partiel sur les erreurs (séries d'erreurs,9-- erreurs par type, dernières erreurs) — les erreurs sont une petite10-- fraction des ~5 M tentatives.11-- 3) search_queries.created_at : bornage par période + purge 90 jours.12--13-- NOTE : sur la base de prod ces index ont été créés CONCURRENTLY (hors14-- transaction) pour ne pas bloquer les crawlers; ce fichier reste idempotent15-- pour les installations neuves.1617BEGIN;1819CREATE INDEX IF NOT EXISTS idx_documents_first_indexed20 ON documents (first_indexed_at);2122CREATE INDEX IF NOT EXISTS idx_attempts_errors_time23 ON crawl_attempts (fetched_at DESC)24 WHERE outcome = 'error';2526CREATE INDEX IF NOT EXISTS idx_queries_time27 ON search_queries (created_at);2829INSERT INTO schema_migrations (version) VALUES (5) ON CONFLICT DO NOTHING;3031COMMIT;32