PostgreSQL默认全文搜索解析器为何无法分词格鲁吉亚语词汇?
PostgreSQL格鲁吉亚语全文搜索分词异常问题
已创建格鲁吉亚语Hunspell字典:
create text search dictionary georgian_hunspell(...);
并基于默认解析器创建全文搜索配置:
CREATE TEXT SEARCH CONFIGURATION georgian_hunspell_configuration (parser = default);
但默认解析器无法正确对格鲁吉亚语词汇分词,反而将其识别为空格符号。格鲁吉亚语采用字母书写,词汇以空格分隔,且字母已纳入UTF-8编码。
通过ts_debug验证的结果如下:
- 随机英文字符序列被识别为「Word, all ASCII」:
select * from ts_debug('georgian_hunspell_configuration', 'dsfasdfs'); - 包含英语、德语/瑞典语字母的随机序列被识别为「Word, all letters」:
select * from ts_debug('georgian_hunspell_configuration', 'äpfasdfpeltäfasdf'); - 随机亚美尼亚语字母序列被识别为「Word, all letters」:
select * from ts_debug('georgian_hunspell_configuration', 'կդտըպլՔՂԱ'); - 随机或有意义的格鲁吉亚语字母序列被识别为「空格符号」:
select * from ts_debug('georgian_hunspell_configuration', 'ასდადფ');
由于解析器无法正确定义令牌类型,相关令牌无法匹配自定义字典,导致搜索功能失效。
使用的PostgreSQL版本:PostgreSQL 14.7 on aarch64-apple-darwin20.6.0, compiled by Apple clang version 12.0.5 (clang-1205.0.22.9), 64-bit
内容的提问来源于stack exchange,提问作者Andrew Slock
相关产品推荐
相关产品推荐

