PostgreSQL逻辑复制时如何过滤全文搜索相关对象?
导读:本期聚焦于赵六创作的《PostgreSQL逻辑复制时如何过滤全文搜索相关对象?》,敬请观看详情。在PostgreSQL逻辑复制环境中,全文搜索相关的tsvector列、GIN索引和文本搜索配置经常被混在一起处理,结果要么复制了过多向量数据,要么订阅端缺少必要的字典和解析器。其实逻辑复制本身只负责表数据的增量同步,并不复制文本搜索配置、字典、解析器这些DDL对象。要精准过滤全文搜索相关对象,需要把问题拆成两层:发布侧通过表级列表排除独立的全文搜索表,必要时使用行级过滤器去掉不需要的文档行;订阅侧则通过pg_dump或DDL脚本单独同步文本搜索对象和索引定义。本文结合CREATE PUBLICATION、ALTER PUBLICATION以及PostgreSQL 15的行过滤机制,演示几种常见过滤方案,并说明to_tsvector等函数在行过滤表达式中的限制。全文搜索数据过滤并不复杂,关键是区分数据复制与元数据同步的边界。
栏目:PostgreSQL 时间:10-17 PostgreSQL逻辑复制
