关键字字段按原样存储,因此关键字字段的排序区分大小写。Normalizer 带有小写过滤器可用于索引关键字字段。
关键字字段的normalizer属性类似于analyzer
除了它保证分析链产生一个单一的
令牌。
映射:
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
}
}
}
查询: name.keyword 上的排序和 name.keyword 上的术语查询都将不区分大小写
{
"query": {
"match_all": {}
},
"sort": [
{
"name.keyword": {
"order": "asc"
}
}
]
}
结果:"
"hits" : [
{
"_index" : "index84",
"_type" : "_doc",
"_id" : "SBvLT3IB8mx5yKbJQ7EC",
"_score" : null,
"_source" : {
"name" : "Amit 111"
},
"sort" : [
"amit 111"
]
},
{
"_index" : "index84",
"_type" : "_doc",
"_id" : "SRvLT3IB8mx5yKbJULFl",
"_score" : null,
"_source" : {
"name" : "amit 111"
},
"sort" : [
"amit 111"
]
},
{
"_index" : "index84",
"_type" : "_doc",
"_id" : "ShvLT3IB8mx5yKbJaLFg",
"_score" : null,
"_source" : {
"name" : "Amit 222"
},
"sort" : [
"amit 222"
]
}
]