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, вне зависимости от кодировок баз данных.
В файлах конфигурации тезаурусов стоп-слова должны помечаться знаком
?
.