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

如何在Amazon RDS PostgreSQL中加载自定义unaccent规则?

在Amazon RDS PostgreSQL中自定义德语变音符号的Unaccent映射规则

因为Amazon RDS没有文件系统访问权限,无法替换默认的unaccent.rules文件,你可以通过创建自定义PL/pgSQL函数来实现符合德语习惯的变音符号映射(Ü→UE、ü→ue、Ö→OE、ö→oe、Ä→AE、ä→ae),具体步骤如下:

1. 创建自定义德语Unaccent函数

执行以下SQL创建函数,该函数先替换德语变音符号,再调用原生unaccent处理其他可能的重音字符:

CREATE OR REPLACE FUNCTION german_unaccent(text) RETURNS text AS $$
BEGIN
    RETURN unaccent(
        replace(
            replace(
                replace(
                    replace(
                        replace(
                            replace($1, 'Ü', 'UE'),
                            'ü', 'ue'
                        ),
                        'Ö', 'OE'
                    ),
                    'ö', 'oe'
                ),
                'Ä', 'AE'
            ),
            'ä', 'ae'
        )
    );
END;
$$ LANGUAGE plpgsql IMMUTABLE;

标记为IMMUTABLE可提升查询性能,PostgreSQL会缓存函数结果。

2. 在查询中使用自定义函数

替换原查询中的unaccent为german_unaccent即可:

SELECT * FROM students
WHERE german_unaccent(name) ILIKE german_unaccent('Muel%');

测试验证

执行以下语句验证映射效果:

SELECT german_unaccent('Müller'); -- 返回 Mueller
SELECT german_unaccent('Österreich'); -- 返回 Oesterreich
SELECT german_unaccent('Äpfel'); -- 返回 Aepfel

内容的提问来源于stack exchange,提问作者Александар Стјепановић

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:12:39