Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgvector_zh

基于 pgvector 官方镜像构建的 PostgreSQL 镜像,在向量检索(pgvector)之外补充了 zhparser 中文分词全文检索能力,开箱即用。

镜像内容

组件 版本 说明
PostgreSQL 18(trixie) 来自基础镜像
pgvector 0.8.2 向量检索扩展,来自基础镜像 pgvector/pgvector:0.8.2-pg18-trixie
SCWS 1.2.3 中文分词库,zhparser 的依赖
zhparser master@02c0837 PostgreSQL 中文分词扩展(amutu/zhparser 2025-10-21 快照)

构建

源码包不进入仓库,由 build.sh 在构建前自动下载到 downloads/(已加入 .gitignore),并做 SHA256 校验以保证构建可复现:

./build.sh
  • 默认镜像名 / 标签为 pgvector-zh:0.8.2-pg18,可通过环境变量覆盖:

    IMAGE_NAME=myrepo/pgvector-zh IMAGE_TAG=latest ./build.sh
  • 各组件的下载地址与 SHA256 固定在 build.sh 顶部,升级版本时修改对应变量即可。

使用

docker run -d --name pg \
    -e POSTGRES_PASSWORD=postgres \
    -p 5432:5432 \
    pgvector-zh:0.8.2-pg18

启用扩展并配置中文分词:

CREATE EXTENSION vector;      -- 向量检索
CREATE EXTENSION zhparser;    -- 中文分词

-- 配置中文全文检索(映射具体词性可按需调整)
CREATE TEXT SEARCH CONFIGURATION zh_cn (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION zh_cn
    ADD MAPPING FOR n,v,a,j,i,e,l WITH simple;

-- 验证分词效果
SELECT to_tsvector('zh_cn', '中国人民生活幸福');
--  '中国':1 '人民':2 '生活':3 '幸福':4

向量检索示例:

CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[2,3,4]');
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 1;

目录结构

├── Dockerfile        # 镜像构建定义
├── build.sh          # 自动下载源码并构建镜像
├── debian.sources    # 阿里云 apt 镜像源配置(构建时 COPY 进镜像)
└── downloads/        # 源码缓存目录(gitignore,由 build.sh 生成)

上游项目

About

PostgreSQL 18 + pgvector + zhparser:向量检索与中文全文检索一体化的 Docker 镜像

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages