PostgreSQL showball算法不适用于同义词

时间:2016-02-04 12:17:49

标签: postgresql full-text-search config synonym snowball

我为此配置创建了自定义配置和同义词 这是我的synonym_custom.syn文件内容

gate    door

这些是创建脚本:

CREATE TEXT SEARCH CONFIGURATION icons (copy='english');

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

ALTER TEXT SEARCH CONFIGURATION icons
    ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
                  word, hword, hword_part
    WITH my_synonym, english_stem;

现在,当我创建vector时,它不会为单词gates

创建lexem
postgres=# select to_tsvector('icons','door doors gate gates');
      to_tsvector
-----------------------
 'door':1,2,3 'gate':4
(1 row)

如您所见,它会更改doordoorsgate,而不是gates。相反,雪球算法在gates上运行并创建了lexem gate 如何强制postgresql传递同义词的结果扔雪球算法。我知道,同义词词典优先于滚雪球。作为一种解决方法,我可以将gate单词的所有修改添加到synonym_custom.syn,但我有3,500个单词,包含这样的同义词。所以这不是我的解决方案。

0 个答案:

没有答案