斯堪的纳维亚归一化过滤器 #
scandinavian_normalization 词元过滤器将斯堪的纳维亚语言中互换使用的字符对统一为一种形式,使跨语言搜索更一致。
归一化规则 #
| 原始字符 | 归一化为 | 说明 |
|---|---|---|
| ä | æ | 瑞典语 ä → 丹麦语/挪威语 æ |
| ö | ø | 瑞典语 ö → 丹麦语/挪威语 ø |
| Ä | Æ | 大写同理 |
| Ö | Ø | 大写同理 |
与
scandinavian_folding的区别:scandinavian_normalization只统一互换字符对(ä↔æ, ö↔ø),不会折叠到 ASCII 基础字符。而scandinavian_folding会进一步折叠为 a、o 等 ASCII 字符。
使用示例 #
PUT my-scandi-index
{
"settings": {
"analysis": {
"filter": {
"scandi_norm": {
"type": "scandinavian_normalization"
}
},
"analyzer": {
"my_scandi": {
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase", "scandi_norm"]
}
}
}
}
}
测试效果 #
GET /_analyze
{
"tokenizer": "standard",
"filter": ["scandinavian_normalization"],
"text": "räksmörgås"
}
响应中 räksmörgås → pair ræksmørgås(ä→æ, ö→ø,但 å 保持不变)。
参数 #
此过滤器不接受任何参数。
适用场景 #
- 跨斯堪的纳维亚语言搜索(瑞典语+丹麦语+挪威语混合索引)
- 希望统一 ä/æ 和 ö/ø,但保留 å、ø 等字符不折叠到 ASCII
- 如果需要更激进的折叠(å→a),请改用
scandinavian_folding