微语默认 PostgreSQL 镜像升级为 ParadeDB 0.25.9
微语已在 deploy/docker/compose/compose-postgresql.yaml 中将默认 PostgreSQL 镜像从原生 postgres:17 切换为 paradedb/paradedb:0.25.9。这次更新的目标很明确:在保持 PostgreSQL 协议与生态兼容的前提下,为知识库、工单、消息和 AI 检索场景引入更强的全文检索与分析能力。
本文说明这次切换带来的变化、为什么选择 ParadeDB,以及本地开发和升级时需要注意的兼容点。
这次更新了什么
目前默认配置已经改为:
image: paradedb/paradedb:0.25.9
同时保留了原生 PostgreSQL 镜像注释,方便需要纯 PostgreSQL 环境的团队自行切回:
# image: postgres:17
除了镜像本身,这次还同步调整了两个关键细节:
- 数据卷挂载路径改为
/var/lib/postgresql - PostgreSQL 数据卷名称调整为
bytedesk_postgresql_data18
这两个调整并不是格式清理,而是为了兼容 ParadeDB 当前基于 PostgreSQL 18 的镜像布局,避免沿用旧 PG17/更早镜像的数据目录约定后导致容器拒绝启动。
为什么从 PostgreSQL 切到 ParadeDB
ParadeDB 本质上仍然是 PostgreSQL 发行版,但额外内置了适合搜索与分析场景的增强能力。对微语来说,这比“数据库一套、搜索引擎再单独部署一套”的方式更轻量。
这次切换主要基于以下考虑:
- 微语的知识库、FAQ、工单和消息天然存在全文检索需求
- AI 检索增强场景需要更强的文本召回与排序能力
- 本地开发、演示环境和中小规模部署更希望减少 Elasticsearch 这类额外组件依赖
- 保持 PostgreSQL 兼容协议,能降低应用侧改造成本
ParadeDB 提供的 pg_search 能力适合这类场景,尤其是基于 BM25 的全文检索、向量检索和混合检索能力,和微语当前的知识库与 AI 能力方向比较一致。
对微语有什么直接价值
对使用 PostgreSQL 部署微语的团队,这次更新最直接的价值有三点:
1. 搜索能力更贴近业务场景
客服知识库、FAQ、历史消息、工单标题与内容都更适合走数据库内的全文检索能力,而不是只依赖模糊匹配或额外维护独立搜索系统。
2. 部署结构更简单
在需要 PostgreSQL 的场景里,ParadeDB 让团队可以先把检索能力放进数据库层验证,减少“先上搜索集群再做业务联调”的前置成本。
3. 为 AI 检索增强预留基础设施空间
微语已经在知识库和 AI 场景中逐步引入向量检索、检索增强和多阶段召回。默认镜像改为 ParadeDB,可以让后续 PostgreSQL 技术栈上的 AI 检索能力扩展更自然。
兼容性说明
这次切换不是替换数据库协议,应用层仍按 PostgreSQL 使用。也就是说:
- Spring Boot 数据源配置方式不变
- JDBC 驱动与 PostgreSQL 方言不变
- 现有 PostgreSQL 工具链与运维方式基本不变
但有两个升级注意事项必须明确。
1. ParadeDB 0.25.9 默认基于 PostgreSQL 18
paradedb/paradedb:0.25.9 不是 PG17 变体,而是默认基于 PostgreSQL 18。若你的环境明确要求 PG17,需要改用 ParadeDB 对应的 PG17 标签,而不是直接假设 0.25.9 等同于 PG17。
2. PG18+ 的数据目录挂载方式不同
旧的 PostgreSQL Docker 使用中,很多项目会把数据卷挂到:
/var/lib/postgresql/data
但 PG18+ 系列镜像要求挂载到:
/var/lib/postgresql
如果继续沿用旧路径,容器可能因为识别到不兼容的数据目录布局而无法正常启动。这也是这次 compose 文件里同步修改卷挂载路径的原因。
