dict_xsyn. Дополнительный шаблон словаря для полнотекстового поиска
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
dict_xsyn
– Extended Synonym Dictionary, расширенный словарь синонимов.
Модуль представляет собой пример дополнительного шаблона словаря для полнотекстового поиска. Этот словарь заменяет слова группами их синонимов, что позволяет находить слово по одному из его синонимов.
Параметры словаря:
Параметр | Значение по умолчанию | Описание |
---|---|---|
matchorig | true | Определяет, будет ли словарь принимать изначальное слово |
matchsynonyms | false | Определяет, будет ли словарь принимать синонимы |
keeporig | true | Определяет, будет ли исходное слово включаться в вывод словаря |
keepsynonyms | true | Определяет, будут ли в вывод словаря включаться синонимы |
rules | – | Задает базовое имя файла со списком синонимов. Этот файл должен находиться в каталоге $SHAREDIR/tsearch_data/ . Под $SHAREDIR понимается каталог с общими данными инсталляции PostgreSQL. Часто он расположен в каталоге $PGHOME/share/ . Имя файла должно заканчиваться расширением .rules . Расширение не нужно указывать в параметре rules ). |
Файл правил (параметр rules
) имеет следующий формат:
-
каждая строка представляет группу синонимов для одного слова, которое задается первым в этой строке:
word synw1 synw2 synw3
-
символ решетки (
#
) обозначает начало комментария и может находиться в любом месте строки; сл едующая за ним часть строки игнорируется.
Пример словаря можно найти в файле $PGHOME/share/tsearch_data/xsyn_sample.rules
:
# Sample rules file for eXtended Synonym (xsyn) dictionary
# format is as follows:
#
# word synonym1 synonym2 ...
#
supernova sn sne 1987a
Доработка
Доработка не проводилась.
Ограничения
Ограничения отсутствуют.
Установка
При наличии прав администратора СУБД включение модуля возможно выполнить вручную:
CREATE EXTENSION dict_xsyn SCHEMA ext;
Настройка
Настройка не требуется.
Использование модуля
При установке расширения dict_xsyn
в базе создается шаблон текстового поиска xsyn_template
и на его основе словарь xsyn
. Параметры установлены по умолчанию. Можно изменить параметры словаря или создать новые словари на базе этого шаблона.
Пример:
Создать файл $PGHOME/share/tsearch_data/my_rules.rules
с текстом:
my_new_word synon1 synn2 syncr3 sample4 #Пример словаря
Запрос на изменение параметров без вывода исходного слова:
ALTER TEXT SEARCH DICTIONARY ext.xsyn (RULES='my_rules', KEEPORIG=false);
Результат выполнения:
ALTER TEXT SEARCH DICTIONARY
Проверка словаря:
SELECT ts_lexize('ext.xsyn', 'my_new_word');
Результат выполнения:
ts_lexize
-------------------------------
{synon1,synn2,syncr3,sample4}
(1 row)
Запрос на изменение параметров с выводом исходного слова:
ALTER TEXT SEARCH DICTIONARY ext.xsyn (RULES='my_rules', KEEPORIG=true);
Результат выполнения:
ALTER TEXT SEARCH DICTIONARY
Проверка словаря:
SELECT ts_lexize('ext.xsyn', 'my_new_word');
Результат выполнения:
ts_lexize
-------------------------------
{my_new_word,synon1,synn2,syncr3,sample4}
(1 row)
Для практического применения словарь нужно включить в конфигурацию текстового поиска. Это может выглядеть примерно так:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR word, asciiword WITH xsyn, english_stem;
Ссылки на документацию разработчика
Исходная документация PosgreSQL по модулю dict-xsyn: https://www.postgresql.org/docs/15/dict-xsyn.html.