是否可以从Postgresql的文本搜索词典中排除一个特定的停用词?

问题描述 投票:0回答:1

我创建了此自定义词典

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

但是,以下停用词已删除:

SELECT ts_lexize('public.simple_dict','geen');

此词否定下一个词,在意义上至关重要。我们如何从停用词列表中删除该词?

postgresql dictionary full-text-search tsvector
1个回答
0
投票

您必须通过复制tsearch_data并删除有问题的单词,在PostgreSQL安装的“ share”目录的dutch.stop子目录中创建一个新的停用词文件。

如果新的停用词文件名为dutch_new.stop,请使用以下内容创建新的词典

CREATE TEXT SEARCH DICTIONARY dutch_new (
   TEMPLATE = snowball,
   LANGUAGE = 'dutch',
   STOPWORDS = 'dutch_new'
);

然后使用字典创建新的文本搜索配置:

CREATE TEXT SEARCH CONFIGURATION dutch_new (COPY = dutch);

ALTER TEXT SEARCH CONFIGURATION dutch_new
   ALTER MAPPING FOR
      asciihword, asciiword, hword, hword_asciipart, hword_part, word
      WITH dutch_new;
© www.soinside.com 2019 - 2024. All rights reserved.