ICU 规范化字符过滤器编辑

此处所述,对字符进行规范化。它将自身注册为 icu_normalizer 字符过滤器,无需任何进一步配置即可用于所有索引。可以使用 name 参数指定规范化类型,该参数接受 nfcnfkcnfkc_cf(默认)。将 mode 参数设置为 decompose 可将 nfc 转换为 nfd 或将 nfkc 转换为 nfkd

可以通过指定 unicode_set_filter 参数来控制要规范化的字母,该参数接受 UnicodeSet

以下是两个示例,默认用法和自定义字符过滤器

PUT icu_sample
{
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "nfkc_cf_normalized": { 
            "tokenizer": "icu_tokenizer",
            "char_filter": [
              "icu_normalizer"
            ]
          },
          "nfd_normalized": { 
            "tokenizer": "icu_tokenizer",
            "char_filter": [
              "nfd_normalizer"
            ]
          }
        },
        "char_filter": {
          "nfd_normalizer": {
            "type": "icu_normalizer",
            "name": "nfc",
            "mode": "decompose"
          }
        }
      }
    }
  }
}

使用默认的 nfkc_cf 规范化。

使用自定义的 nfd_normalizer 标记过滤器,该过滤器设置为使用带有分解的 nfc 规范化。