27 lines
977 B
SQL
27 lines
977 B
SQL
-- Enable pgvector extension
|
|
CREATE EXTENSION IF NOT EXISTS vector;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "icd_codes" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"display" TEXT NOT NULL,
|
|
"version" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"embedding" vector(1536),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "icd_codes_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- Create unique index on code
|
|
CREATE UNIQUE INDEX "icd_codes_code_key" ON "icd_codes"("code");
|
|
|
|
-- Create ivfflat index for fast vector similarity search
|
|
CREATE INDEX "icd_codes_embedding_idx" ON "icd_codes" USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
|
|
|
|
-- Add comments for documentation
|
|
COMMENT ON COLUMN "icd_codes"."embedding" IS 'Vector embedding for semantic search using pgvector (1536 dimensions)';
|
|
COMMENT ON INDEX "icd_codes_embedding_idx" IS 'IVFFlat index for fast cosine similarity search with 100 lists';
|