ASCII 折叠令牌过滤器编辑

将不在基本拉丁 Unicode 块(前 127 个 ASCII 字符)中的字母、数字和符号字符转换为其 ASCII 等效项(如果存在)。例如,过滤器将 à 更改为 a

此过滤器使用 Lucene 的 ASCIIFoldingFilter

示例编辑

以下 分析 API 请求使用 asciifolding 过滤器来删除 açaí à la carte 中的变音符号。

response = client.indices.analyze(
  body: {
    tokenizer: 'standard',
    filter: [
      'asciifolding'
    ],
    text: 'açaí à la carte'
  }
)
puts response
GET /_analyze
{
  "tokenizer" : "standard",
  "filter" : ["asciifolding"],
  "text" : "açaí à la carte"
}

过滤器生成以下令牌

[ acai, a, la, carte ]

添加到分析器编辑

以下 创建索引 API 请求使用 asciifolding 过滤器来配置一个新的 自定义分析器

response = client.indices.create(
  index: 'asciifold_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          standard_asciifolding: {
            tokenizer: 'standard',
            filter: [
              'asciifolding'
            ]
          }
        }
      }
    }
  }
)
puts response
PUT /asciifold_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "standard_asciifolding": {
          "tokenizer": "standard",
          "filter": [ "asciifolding" ]
        }
      }
    }
  }
}

可配置参数编辑

preserve_original
(可选,布尔值) 如果为 true,则同时发出原始令牌和折叠令牌。默认为 false

自定义编辑

要自定义 asciifolding 过滤器,请将其复制以创建新自定义令牌过滤器的基础。您可以使用其可配置参数修改过滤器。

例如,以下请求创建了一个自定义 asciifolding 过滤器,其中 preserve_original 设置为 true

response = client.indices.create(
  index: 'asciifold_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          standard_asciifolding: {
            tokenizer: 'standard',
            filter: [
              'my_ascii_folding'
            ]
          }
        },
        filter: {
          my_ascii_folding: {
            type: 'asciifolding',
            preserve_original: true
          }
        }
      }
    }
  }
)
puts response
PUT /asciifold_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "standard_asciifolding": {
          "tokenizer": "standard",
          "filter": [ "my_ascii_folding" ]
        }
      },
      "filter": {
        "my_ascii_folding": {
          "type": "asciifolding",
          "preserve_original": true
        }
      }
    }
  }
}