我想在弹性搜索中使用不区分大小写的排序。但是 ES 默认使用 ASCII 排序。所以要进行不区分大小写的搜索。我必须使用归一化器。
{
"analysis": {
"normalizer": {
"custom_sort_normalizer": {
"type": "custom",
"char_filter": [],
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
}
我想将此custom_sort_normalizer应用于所有基于文本或关键字的字段。当我使用 AWS elasticsearch 时,我不能简单地关闭索引并应用这个规范器。要么我必须重新索引并从头开始创建索引,我想在未来避免这两个选项。
现在,我在映射中手动添加以告诉 elasticsearch 使用规范化器。无论如何我可以将其设为默认值吗?
更新:我正在使用 yaml 文件维护映射。下面是一个示例映射。
properties:
studetName:
type: text
fields:
keyword:
type: keyword
ignore_above: 256
studentGender:
type: text
fields:
keyword:
type: keyword
ignore_above: 256
studentGroup:
type: text
fields:
keyword:
type: keyword
normalizer: custom_sort_normalizer
ignore_above: 256
我的主要目标是,我们在这个 mapping.yaml 中添加的每个新文本字段(该索引中的每个新文本/关键字文件)都应该默认使用规范化器。