斯堪的纳维亚字符折叠过滤器(Scandinavian Folding)

斯堪的纳维亚字符折叠过滤器 #

scandinavian_folding 词元过滤器将斯堪的纳维亚语言中互换使用的字符统一归一化。

折叠规则 #

原始字符折叠为涉及语言
åa瑞典语、丹麦语、挪威语
ä, æa瑞典语(ä) / 丹麦语、挪威语(æ)
ö, øo瑞典语(ö) / 丹麦语、挪威语(ø)

scandinavian_normalization 的区别scandinavian_normalization 只折叠互换字符对(如 ä↔æ),而 scandinavian_folding 还会进一步折叠到 ASCII 基础字符(如 å→a)。

使用示例 #

PUT my-scandi-index
{
  "settings": {
    "analysis": {
      "filter": {
        "scandi_fold": {
          "type": "scandinavian_folding"
        }
      },
      "analyzer": {
        "my_scandi": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "scandi_fold"]
        }
      }
    }
  }
}

测试效果 #

GET /_analyze
{
  "tokenizer": "standard",
  "filter": ["scandinavian_folding"],
  "text": "räksmörgås"
}

响应中 räksmörgåsraksmørgasraksmorgas(取决于折叠层级)。

参数 #

此过滤器不接受任何参数。

适用场景 #

  • 跨斯堪的纳维亚语言搜索(瑞典语+丹麦语+挪威语混合索引)
  • 用户可能混用 ö/ø 或 ä/æ 的场景