Files

21 lines
1.1 KiB
SQL

CREATE UNIQUE INDEX IF NOT EXISTS idx_kd_external_id ON knowledge_documents(external_id);
CREATE INDEX IF NOT EXISTS idx_kd_language_region_status ON knowledge_documents(language, region_code, status);
CREATE INDEX IF NOT EXISTS idx_kd_source_hash ON knowledge_documents(source_hash);
CREATE INDEX IF NOT EXISTS idx_kd_validity ON knowledge_documents(valid_from, valid_to);
CREATE INDEX IF NOT EXISTS idx_kc_document_id ON knowledge_chunks(document_id);
CREATE INDEX IF NOT EXISTS idx_kc_language_region ON knowledge_chunks(language, region_code);
CREATE INDEX IF NOT EXISTS idx_kc_content_hash ON knowledge_chunks(content_hash);
CREATE INDEX IF NOT EXISTS idx_kc_tsv ON knowledge_chunks USING GIN(tsv);
DO $$
BEGIN
BEGIN
CREATE INDEX IF NOT EXISTS idx_kc_embedding_hnsw ON knowledge_chunks USING hnsw (embedding vector_cosine_ops);
EXCEPTION WHEN OTHERS THEN
BEGIN
CREATE INDEX IF NOT EXISTS idx_kc_embedding_ivfflat ON knowledge_chunks USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
EXCEPTION WHEN OTHERS THEN
RAISE NOTICE 'vector index creation skipped: %', SQLERRM;
END;
END;
END $$;