ICU 变换词元过滤器

编辑

变换用于以多种不同方式处理 Unicode 文本,例如大小写映射、规范化、音译和双向文本处理。

您可以使用 id 参数(默认为 Null)定义要应用的变换,并使用 dir 参数指定文本方向,该参数接受 forward(默认)表示 LTR 和 reverse 表示 RTL。目前尚不支持自定义规则集。

例如

PUT icu_sample
{
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "latin": {
            "tokenizer": "keyword",
            "filter": [
              "myLatinTransform"
            ]
          }
        },
        "filter": {
          "myLatinTransform": {
            "type": "icu_transform",
            "id": "Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC" 
          }
        }
      }
    }
  }
}

GET icu_sample/_analyze
{
  "analyzer": "latin",
  "text": "你好" 
}

GET icu_sample/_analyze
{
  "analyzer": "latin",
  "text": "здравствуйте" 
}

GET icu_sample/_analyze
{
  "analyzer": "latin",
  "text": "こんにちは" 
}

这将把字符音译为拉丁字母,并将重音符号与其基本字符分开,移除重音符号,然后将剩余文本转换为无重音形式。

返回 ni hao

返回 zdravstvujte

返回 kon'nichiha

更多文档,请参见 ICU 变换用户指南