12.12. Миграция с реализации текстового поиска в версиях до 8.3

Для работы со встроенными средствами текстового поиска приложения, ранее использовавшие модуль tsearch2, должны быть изменены с учётом следующих замечаний:

  • Некоторые функции были переименованы, а у других мог измениться список аргументов. Все они сейчас находятся в схеме pg_catalog, тогда как раньше они в располагались схеме public или другой не системной схеме. Для устранения подобных несоответствий была выпущена новая версия tsearch2, предоставляющая необходимый уровень совместимости.

  • Функции и другие объекты старого модуля tsearch2 нужно игнорировать при загрузке в pg_dump базы до версии 8.3. Хотя многие из них всё равно не загрузятся, остальные могут создать проблемы. Есть один простой способ выполнить это требование — загрузить новый модуль tsearch2 прежде чем восстанавливать базу; тогда он предотвратит загрузку старых объектов.

  • Настройка конфигурации текстового поиска теперь выполняется совсем по-другому. Вместо того, чтобы вручную вставлять строки в таблицы конфигурации, теперь используются специальные SQL-команды, описанные в этой главе ранее. Нестандартные конфигурации в базах версий до 8.3 не будут автоматически преобразованы в новый формат, вам придётся делать это самостоятельно.

  • Многие типы словарей загружают свои определения и параметры из внешних файлов конфигурации. В основном характер использования этих файлов не изменился в версии 8.3, но есть и следующие различия:

    • Файлы конфигурации теперь должны размещаться в одном каталоге ($SHAREDIR/tsearch_data) и иметь определённые расширения, в зависимости от типа, как отмечалось ранее в описании различных типов словарей. Это ограничение было добавлено для предупреждения проблем безопасности.

    • Файлы конфигурации должны иметь кодировку UTF-8, вне зависимости от кодировок баз данных.

    • В файлах конфигурации тезаурусов стоп-слова должны помечаться знаком ?.