|
|
@@ -100,37 +100,15 @@ CREATE INDEX IF NOT EXISTS idx_text_storage_document_id ON text_storage(document
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_text_storage_document_unique ON text_storage(document_id);
|
|
|
|
|
|
-- ============================================
|
|
|
--- 7. 向量存储表(vector_embeddings)
|
|
|
+-- 注意: vector_embeddings 表已在 rag_tables_compatible.sql 中定义
|
|
|
+-- 请勿在此重复定义,以避免表结构冲突
|
|
|
-- ============================================
|
|
|
--- 注意:需要先安装pgvector扩展
|
|
|
--- CREATE EXTENSION IF NOT EXISTS vector;
|
|
|
-
|
|
|
-CREATE TABLE IF NOT EXISTS vector_embeddings (
|
|
|
- id VARCHAR(36) PRIMARY KEY,
|
|
|
- document_id VARCHAR(36) NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
|
|
|
- chunk_text TEXT NOT NULL,
|
|
|
- chunk_index INTEGER NOT NULL, -- 分块索引
|
|
|
- embedding vector(768), -- 向量(需要pgvector扩展,如果未安装可先注释)
|
|
|
- file_name VARCHAR(255),
|
|
|
- file_hash VARCHAR(64), -- MD5哈希
|
|
|
- metadata JSONB DEFAULT '{}',
|
|
|
- create_by VARCHAR(36),
|
|
|
- create_by_name VARCHAR(100),
|
|
|
- create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- update_by VARCHAR(36),
|
|
|
- update_by_name VARCHAR(100),
|
|
|
- update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
|
-);
|
|
|
-
|
|
|
-CREATE INDEX IF NOT EXISTS idx_vector_embeddings_document_id ON vector_embeddings(document_id);
|
|
|
-CREATE INDEX IF NOT EXISTS idx_vector_embeddings_file_hash ON vector_embeddings(file_hash);
|
|
|
--- 向量相似度搜索索引(需要pgvector扩展)
|
|
|
--- CREATE INDEX IF NOT EXISTS idx_vector_embeddings_embedding ON vector_embeddings USING ivfflat (embedding vector_cosine_ops);
|
|
|
|
|
|
-- ============================================
|
|
|
-- 创建更新时间触发器
|
|
|
-- ============================================
|
|
|
-- 注意: graph_nodes 和 graph_relations 的触发器已在 graph_tables.sql 中定义
|
|
|
+-- 注意: vector_embeddings 的触发器已在 rag_tables_compatible.sql 中定义
|
|
|
|
|
|
DROP TRIGGER IF EXISTS update_rules_update_time ON rules;
|
|
|
CREATE TRIGGER update_rules_update_time BEFORE UPDATE ON rules
|
|
|
@@ -147,18 +125,3 @@ CREATE TRIGGER update_templates_update_time BEFORE UPDATE ON templates
|
|
|
DROP TRIGGER IF EXISTS update_text_storage_update_time ON text_storage;
|
|
|
CREATE TRIGGER update_text_storage_update_time BEFORE UPDATE ON text_storage
|
|
|
FOR EACH ROW EXECUTE FUNCTION update_update_time_column();
|
|
|
-
|
|
|
-DROP TRIGGER IF EXISTS update_vector_embeddings_update_time ON vector_embeddings;
|
|
|
-CREATE TRIGGER update_vector_embeddings_update_time BEFORE UPDATE ON vector_embeddings
|
|
|
- FOR EACH ROW EXECUTE FUNCTION update_update_time_column();
|
|
|
-
|
|
|
--- ============================================
|
|
|
--- 安装pgvector扩展(可选,用于向量检索)
|
|
|
--- ============================================
|
|
|
--- 如果需要使用pgvector,请执行:
|
|
|
--- CREATE EXTENSION IF NOT EXISTS vector;
|
|
|
---
|
|
|
--- 安装方法:
|
|
|
--- 1. 下载pgvector: https://github.com/pgvector/pgvector
|
|
|
--- 2. 编译安装
|
|
|
--- 3. 在数据库中执行: CREATE EXTENSION vector;
|