我为此配置创建了自定义配置和同义词
这是我的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
postgres=# select to_tsvector('icons','door doors gate gates');
to_tsvector
-----------------------
'door':1,2,3 'gate':4
(1 row)
如您所见,它会更改door
,doors
和gate
,而不是gates
。相反,雪球算法在gates
上运行并创建了lexem gate
如何强制postgresql传递同义词的结果扔雪球算法。我知道,同义词词典优先于滚雪球。作为一种解决方法,我可以将gate
单词的所有修改添加到synonym_custom.syn
,但我有3,500个单词,包含这样的同义词。所以这不是我的解决方案。