F.42. tsearch2

tsearch2模块为在文本搜索整合到内核PostgreSQL 版本8.3之前的应用提供后向兼容的文本搜索功能。

F.42.1. 可移植性问题

尽管内建的文本搜索功能基于tsearch2并且在很大程度上相似, 但是有许多微小的差异将造成现有应用的可移植性问题:

有一些问题没有被替换的tsearch2模块处理, 并且因此将在任意情况下请求改变应用代码:

F.42.2. 转换一个8.3之前的安装

更新使用tsearch2的8.3之前的安装的推荐方式是:

  1. 以普通的方式从老的安装中做一个转储,但是确保不要使用pg_dumppg_dumpall-c (--clean)选项。

  2. 在新的安装中,创建空的数据库并安装替换的tsearch2 模块到每个将要使用文本搜索的数据库。这必须在加载转储数据之前完成! 如果你的旧安装在除了public之外的一个模式中有tsearch2对象, 确保调整CREATE EXTENSION命令,这样替换的对象在相同的模式中创建。

  3. 加载转储数据。将会报告一些错误,因为未能重新创建原来的tsearch2对象。 可以忽略这些错误,但是这意味着你不能在单个事务中恢复转储 (例如,你不能使用pg_restore-1开关)。

  4. 检查恢复的tsearch2配置表的内容(pg_ts_cfg等), 并根据需要创建相等的内建文本搜索配置。你可能会在提取了所有有用的信息之后删除旧的配置表。

  5. 测试你的应用。

稍后你可能希望重命名应用引用到别名文本搜索对象, 这样你可以最后卸载替换的tsearch2模块。

F.42.3. 参考文献

Tsearch2 开发网站 http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/