Elastic search 中如何对字符串按从大到小的自然顺序排列
时间: 2023-06-24 12:05:44 浏览: 63
在Elasticsearch中对字符串按照从大到小的自然顺序排列,需要使用"keyword"类型并添加一个"normalizer"。具体步骤如下:
1. 创建一个新的索引,并指定一个自定义的normalizer。例如,我们可以创建一个名为"my_normalizer"的normalizer,使用"lowercase"和"asciifolding"字符过滤器,并且将"keyword"类型的字段映射到该normalizer上。
```
PUT my_index
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"filter": ["lowercase", "asciifolding"]
}
}
}
},
"mappings": {
"properties": {
"my_field": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
}
```
2. 在查询时,使用"sort"参数并指定"my_field"字段以及"desc"排序方式。例如,以下查询将按从大到小的自然顺序对"my_field"字段进行排序,并返回前10个结果。
```
GET my_index/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"my_field": {
"order": "desc"
}
}
],
"size": 10
}
```