选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

12.12. 从 8.3 之前的文本搜索迁移 #

使用tsearch2模块进行文本搜索的应用需要进行一些调整, 才能使用内置功能:

  • 一些函数已被重命名,或在其参数列表上做了小调整,而且它们现在都位于 pg_catalog模式中,而在以前的安装中它们可能位于 public或其他非系统模式中。新版本的tsearch2 提供了一个兼容层,可解决这一领域的大多数问题。

  • 从 8.3 之前的数据库加载pg_dump输出时, 必须屏蔽旧的tsearch2函数和其他对象。 虽然其中很多本来就无法加载,但少数可以加载并随后引发问题。 处理这个问题的一种简单方法是在恢复转储之前先加载新的 tsearch2模块;这样它就会阻止旧对象被加载。

  • 文本搜索配置的设置方式现在完全不同了。不再需要手动向配置表中插入行, 而是通过本章前面介绍的专用 SQL 命令来配置搜索。没有将现有自定义配置 转换为 8.3 形式的自动化支持;这一步需要你自己完成。

  • 大多数类型的词典依赖于数据库之外的一些配置文件。这些文件与 8.3 之前的 用法大体兼容,但请注意以下差异:

    • 配置文件现在必须放在一个指定的目录中 ($SHAREDIR/tsearch_data),并且根据文件类型必须有特定的 扩展名,如前面各种词典类型的描述中所述。添加这一限制是为了防止 安全问题。

    • 无论使用什么数据库编码,配置文件都必须以 UTF-8 编码。

    • 在分类词典配置文件中,停用词必须用?标记。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。