如果有任何方式或设置在弹性搜索中执行字母排序,我会更加干净。我有一个字段,我想按降序对它进行排序。弹性按字典顺序执行。我得到了什么:
Company name
Customer name
company address
我想得到什么:
Company name
company address
Customer name
我发现我可以创建自定义分析器,但是可能有更好的选择吗?
答案 0 :(得分:1)
使用multifields将文本字段索引为lowercased关键字,并将fielddata设为true,以便对其进行排序。
{
"settings": {
"analysis": {
"analyzer": {
"keyword_lowercase": {
"tokenizer": "keyword",
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"text": {
"type": "text",
"fields": {
"raw": {
"type": "text",
"analyzer": "keyword_lowercase",
"fielddata": true
}
}
}
}
}
}
}
查询
{
"sort": [
{
"text.raw": {
"order": "asc"
}
}
]
}