You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取乌克兰语ispell/aspell/snowball字典用于PostgreSQL全文搜索?

为PostgreSQL添加乌克兰语文本搜索字典的解决方案

获取乌克兰语字典文件的可行方法

1. 借助Aspell乌克兰语词库

Aspell提供完善的乌克兰语词库,可直接提取所需的.dict和.aff文件:

  • 先安装Aspell乌克兰语包,不同系统命令如下:
    • Debian/Ubuntu:sudo apt-get install aspell-uk
    • RHEL/CentOS:sudo dnf install aspell-uk
    • macOS(通过Homebrew):brew install aspell --with-ukrainian
  • 安装完成后,字典文件通常存放在系统Aspell目录下,示例路径:
    • .aff文件:/usr/share/aspell/uk.aff
    • .dict文件:/usr/share/aspell/uk.dict
  • 停用词文件可从Aspell配置中提取,或整理开源的乌克兰语停用词列表为纯文本格式(每行一个停用词)。

2. 构建Snowball乌克兰语词干器

Snowball源码默认无乌克兰语支持,但可通过以下方式解决:

  • 使用社区维护的乌克兰语Snowball词干定义文件(.sbl),编译为PostgreSQL兼容的词干库。
  • 编译完成后,通过CREATE TEXT SEARCH CONFIGURATION将其与停用词文件关联使用。

3. 直接使用社区预构建配置

部分社区项目已打包好乌克兰语全文搜索配置,无需手动整理文件:

  • 下载对应的字典包和配置脚本,执行脚本即可完成字典与搜索配置的创建。

PostgreSQL字典配置示例步骤

  1. 将获取到的.aff、.dict和停用词文件复制到PostgreSQL共享目录(示例路径:/usr/share/postgresql/14/tsearch_data/,需根据实际版本调整)。
  2. 创建ispell字典:
CREATE TEXT SEARCH DICTIONARY ukrainian_ispell (
    TEMPLATE = ispell,
    DictFile = uk,
    AffFile = uk,
    StopWords = ukrainian_stopwords
);
  1. 创建并配置乌克兰语文本搜索规则:
CREATE TEXT SEARCH CONFIGURATION ukrainian (COPY = russian);
ALTER TEXT SEARCH CONFIGURATION ukrainian
    ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part
    WITH ukrainian_ispell, simple;

内容的提问来源于stack exchange,提问作者Oleksandr Bratashov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:11:09