-- Index vectoriel HNSW pour similarity search rapide (cosine) CREATE INDEX IF NOT EXISTS idx_knowledge_chunks_embedding ON knowledge_chunks USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64); -- Index fulltext PG (GIN sur tsvector) CREATE INDEX IF NOT EXISTS idx_knowledge_chunks_content_tsv ON knowledge_chunks USING GIN (content_tsv); -- Trigger pour maintenir content_tsv à jour automatiquement CREATE OR REPLACE FUNCTION update_knowledge_chunks_tsv() RETURNS TRIGGER AS $$ BEGIN NEW.content_tsv := to_tsvector('russian', NEW.content) || to_tsvector('simple', NEW.content); RETURN NEW; END; $$ LANGUAGE plpgsql; DROP TRIGGER IF EXISTS trg_knowledge_chunks_tsv ON knowledge_chunks; CREATE TRIGGER trg_knowledge_chunks_tsv BEFORE INSERT OR UPDATE OF content ON knowledge_chunks FOR EACH ROW EXECUTE FUNCTION update_knowledge_chunks_tsv();