我的问题是:我正在使用带有法语词典的postgresql的全文搜索, 我在我的数据库中有一些描述,其中包含一个字符的名称,例如: Amphi' A' ,Amphi& C,Amphi' D' ... 好吧,为此,当我使用tsvector自动创建触发器时,somme名称不会出现, 对于Amphi A我得到了&' 1' a':2但对于Amphi' C'没有它的名字就是' amphi':1。
请帮助我:D
答案 0 :(得分:2)
那是因为f.ex.法语词典中C
和D
被认为是stop words:
SELECT to_tsvector('french', 'Amphi A'); -- 'a':2 'amphi':1
SELECT to_tsvector('french', 'Amphi C'); -- 'amphi':1
您可以通过以下方式创建自定义词典(及其配置),不带停用词:
CREATE TEXT SEARCH DICTIONARY french_stem_nostop(
TEMPLATE = snowball,
LANGUAGE = 'french'
);
CREATE TEXT SEARCH CONFIGURATION french_nostop(COPY = french);
ALTER TEXT SEARCH CONFIGURATION french_nostop
ALTER MAPPING FOR asciihword WITH french_stem_nostop;
ALTER TEXT SEARCH CONFIGURATION french_nostop
ALTER MAPPING FOR asciiword WITH french_stem_nostop;
ALTER TEXT SEARCH CONFIGURATION french_nostop
ALTER MAPPING FOR hword WITH french_stem_nostop;
ALTER TEXT SEARCH CONFIGURATION french_nostop
ALTER MAPPING FOR hword_asciipart WITH french_stem_nostop;
ALTER TEXT SEARCH CONFIGURATION french_nostop
ALTER MAPPING FOR hword_part WITH french_stem_nostop;
SELECT to_tsvector('french_nostop', 'Amphi C'); -- 'amphi':1 'c':2