Как обновить список стоп-слов без перезапуска сервера postgres? - PullRequest
1 голос
/ 17 июня 2019

У меня есть пользовательская конфигурация поиска со стоп-словами. Что мне нужно сделать, чтобы сервер postgres увидел изменения в списке стоп-слов?

upd 1

Я создал файл russian_extended.stop в каталоге pg10\share\postgresql\tsearch_data.

Затем я выполнил команды

CREATE TEXT SEARCH DICTIONARY public.russian_extended (
        TEMPLATE = pg_catalog.simple,
        STOPWORDS = russian_extended
    );

, а затем

CREATE TEXT SEARCH CONFIGURATION public.russian_extended (
        COPY = pg_catalog.russian
    );

и в конце

ALTER TEXT SEARCH CONFIGURATION public.russian_extended
        ALTER MAPPING
            FOR asciiword, asciihword, hword_asciipart, hword, hword_part, word
            WITH russian_extended;

upd 2

После этого я добавляю новое слово в список, и я не понимаю, как применить эти изменения на лету без перезагрузки моего сервера postgres ...

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Исходя из моего прочтения источника, словарь текстового поиска инициализируется всякий раз, когда словарь используется впервые, или после аннулирования кэша (функция lookup_ts_dictionary_cache).

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

Я не проверял, так ли это, вы можете проверить?

Если у вас есть полнотекстовые поисковые индексы, использующие конфигурацию со словарем, в котором вы изменилифайл стоп-слов, вам придется перестроить эти индексы.

0 голосов
/ 17 июня 2019

Я пропустил решение в официальной документации , моя ошибка заключалась в том, что я поместил в список результат функции to_tsvector

ALTER TEXT SEARCH DICTIONARY public.russian_extended (StopWords=russian_extended);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...