目录
概述
规范化器类似于分析器,但它们只能生成单个标记。因此,它们没有标记器,并且仅接受可用字符过滤器和标记过滤器的子集。只允许按字符进行操作的过滤器。例如,小写化过滤器是被允许的,但是需要整体查看关键词的词干过滤器则不被允许。目前可用于规范化器的过滤器列表包括: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"
}
}
}
}