只是遇到一个问题。我正在尝试对本地化内容(尤其是俄语)设置全文搜索。问题是默认配置(以及我的自定义)不处理字母大小写。例子:
SELECT * from to_tsvector('test_russian', 'На рынке появились новые рублевые облигации');
> 'На':1 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
'На' 是一个停用词,应该被删除,但它甚至不会在结果向量中小写。如果我通过小写字符串,一切正常
SELECT * from to_tsvector('test_russian', 'на рынке появились новые рублевые облигации');
> 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
当然我可以传递预小写的字符串,但是手册说
简单的字典模板通过将输入标记转换为小写并根据停用词文件对其进行检查来进行操作。
配置russian_test
如下所示:
create text search CONFIGURATION test_russian (COPY = 'russian');
CREATE TEXT SEARCH DICTIONARY russian_simple (
TEMPLATE = pg_catalog.simple,
STOPWORDS = russian
);
CREATE TEXT SEARCH DICTIONARY russian_snowball (
TEMPLATE = snowball,
Language = russian,
StopWords = russian
);
alter text search configuration test_russian
alter mapping for word
with russian_simple,russian_snowball;
但我实际上使用内置russian
配置得到了完全相同的结果。
正如我所料,我尝试了 ts_debug 并将令牌视为word
。
有任何想法吗?