如何在不重新启动postgres服务器的情况下刷新停用词列表?

时间:2019-06-17 11:53:41

标签: postgresql full-text-search

我具有带有停用词的自定义搜索配置。我需要做些什么才能使postgres服务器看到停用词列表中的更改?

更新1

我在目录source中创建了文件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
    );

更新2

此后,我在列表中添加了一个新单词,而且我不明白如何在不重新启动postgres服务器的情况下即时应用此更改...

2 个答案:

答案 0 :(得分:0)

我错过了官方documentation中的解决方案,我的失败是我将函数to_tsvector放入列表结果

ALTER TEXT SEARCH DICTIONARY public.russian_extended (StopWords=russian_extended);

答案 1 :(得分:0)

根据我的阅读来源,每当首次使用该词典或在缓存失效之后(功能lookup_ts_dictionary_cache),都会初始化一个文本搜索词典。

因此,仅启动一个新的数据库会话应使停用词文件中的更改处于活动状态。

我没有验证是否可以,可以测试吗?

如果使用带有字典的配置的全文检索索引,在其中更改了停用词文件,则必须重建这些索引。