历史版本。 PostgreSQL 9.4 已结束支持。 2020-02-13. 请参阅 当前版本手册.
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 编码。
在分类词典配置文件中,停用词必须用
?标记。