【ElasticSearch】规范化器(Normalizers)详解

目录

概述

自定义规则化器


概述

规范化器类似于分析器,但它们只能生成单个标记。因此,它们没有标记器,并且仅接受可用字符过滤器和标记过滤器的子集。只允许按字符进行操作的过滤器。例如,小写化过滤器是被允许的,但是需要整体查看关键词的词干过滤器则不被允许。目前可用于规范化器的过滤器列表包括:arabic_normalization、asciifolding、bengali_normalization、cjk_width、decimal_digit、elision、german_normalization、hindi_normalization、indic_normalization、lowercase、pattern_replace、persian_normalization、scandinavian_folding、serbian_normalization、sorani_normalization、trim、uppercase。

Elasticsearch附带了一个内置的小写化规范化器。对于其他形式的规范化,需要自定义配置。

自定义规则化器

自定义规范化器接受字符过滤器列表和标记过滤器列表。

PUT index
{
  "settings": {
    "analysis": {
      "char_filter": {
        "quote": {
          "type": "mapping",
          "mappings": [
            "« => \\"",
            "» => \\""
          ]
        }
      },
      "normalizer": {
        "my_normalizer": {
          "type": "custom",
          "char_filter": ["quote"],
          "filter": ["lowercase", "asciifolding"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "foo": {
        "type": "keyword",
        "normalizer": "my_normalizer"
      }
    }
  }
}

你可能感兴趣的:(Elasticsearch,elasticsearch)