21 lines
1.1 KiB
SQL
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 $$;
|