Этот репозиторий содержит болгарский ispell ( affix и dict ) и словаря stopword для полного текстового поиска в PostgreSQL.
Файлы словаря ispell ( bulgarian.affix и bulgarian.dict ) были созданы проектом Bgoffice/Bges для использования в OpenOffice и лицензированы в LGPL 3.0.
Этот репозиторий содержит модифицированную версию этих файлов (незначительные изменения), чтобы сделать их совместимыми с форматом, ожидаемым PostgreSQL. Оригинальные файлы ispell ( bulgarian.aff и bulgarian.dic ) можно загрузить с http://bgoffice.sourceforge.net/ispell/index.html
Список Stop Words, используемый в этом репозитории ( bulgarian.stop ), представляет собой модифицированную версию списка, опубликованную в статье «Стратегии поиска для болгарского языка» (список в таблице A.1) профессора Жака Савил.
Скопируйте три файла bulgarian.affix , bulgarian.dict и bulgarian.stop в свой $SHAREDIR/tsearch_data/ directory (например, C:Program FilesPostgreSQL12sharetsearch_data ). Вы можете определить, что такое ваш $SHAREDIR , запустив pg_config --sharedir .
Выполнить следующий скрипт SQL:
CREATE TEXT SEARCH CONFIGURATION bulgarian (COPY = simple);
CREATE TEXT SEARCH DICTIONARY bulgarian_ispell (
TEMPLATE = ispell,
DictFile = bulgarian,
AffFile = bulgarian,
StopWords = bulgarian
);
CREATE TEXT SEARCH DICTIONARY bulgarian_simple (
TEMPLATE = pg_catalog.simple,
STOPWORDS = bulgarian
);
ALTER TEXT SEARCH CONFIGURATION bulgarian ALTER MAPPING FOR asciiword, asciihword, hword, hword_part, word WITH bulgarian_ispell, bulgarian_simple;
Убедитесь, что он работает, запустив полный текстовый запрос поиска.
Подобный запрос:
SELECT to_tsvector('bulgarian', 'текстовете');
должен вывести только основание слова ( текст ):
`"'текст':1"`