×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.9.7. Пример конфигурации

Конфигурация текстового поиска определяет все параметры, необходимые для преобразования документа в tsvector: парсер, применяемый для разбиения текста на токены, и словари, используемые для преобразования каждого токена в лексему. Каждый вызов функции to_tsvector или to_tsquery требует указания конфигурации текстового поиска для выполнения обработки. Параметр конфигурации default_text_search_config определяет имя конфигурации по умолчанию, которая используется функциями текстового поиска в случае отсутствия явно указанного параметра конфигурации. Это значение можно задать в файле postgresql.confили установить для текущего сеанса с помощью SET команды.

В системе доступно несколько встроенных конфигураций текстового поиска; также существует возможность создания пользовательских конфигураций. Для упрощения управления объектами текстового поиска предусмотрен набор SQL команд, а также существует несколько psql команд для вывода информации об объектах текстового поиска (Раздел 2.9.10).

В качестве примера создадим конфигурацию pg, предварительно скопировав встроенную english конфигурацию:

CREATE TEXT SEARCH CONFIGURATION public.pg ( COPY = pg_catalog.english );

Будет использован специфичный для Digital Q.DataBase список синонимов, сохраненный в файле $SHAREDIR/tsearch_data/pg_dict.syn. Содержимое данного файла имеет следующий вид:

postgres    pg
pgsql       pg
postgresql  pg

Определим словарь синонимов следующим образом:

CREATE TEXT SEARCH DICTIONARY pg_dict (
    TEMPLATE = synonym,
    SYNONYMS = pg_dict
);

Затем мы зарегистрируем Ispell словарь english_ispell, имеющий собственные файлы конфигурации:

CREATE TEXT SEARCH DICTIONARY english_ispell (
    TEMPLATE = ispell,
    DictFile = english,
    AffFile = english,
    StopWords = english
);

Теперь можно настроить сопоставления слов в конфигурации текстового поиска: pg:

ALTER TEXT SEARCH CONFIGURATION pg
    ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
                      word, hword, hword_part
    WITH pg_dict, english_ispell, english_stem;

Было принято решение не индексировать и не выполнять поиск по некоторым типам токенов, которые обрабатываются встроенной конфигурацией:

ALTER TEXT SEARCH CONFIGURATION pg
    DROP MAPPING FOR email, url, url_path, sfloat, float;

Теперь можно протестировать созданную конфигурацию:

SELECT * FROM ts_debug('public.pg', '
PostgreSQL, the highly scalable, SQL compliant, open source object-relational
database management system, is now undergoing beta testing of the next
version of our software.
');

Следующим этапом является настройка сеанса для использования новой конфигурации, созданной в public схеме:

=> \dF
   Список конфигураций текстового поиска
 Схема  | Имя | Описание
---------+------+-------------
 public  | pg   |

SET default_text_search_config = 'public.pg';
SET

SHOW default_text_search_config;
 default_text_search_config
----------------------------
 public.pg

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению