我想知道是否有任何方法或设置可以在elasticsearch中执行字母顺序排序。我有一个字段,我想对其进行降序排序。 Elastic 按字典顺序执行它。我得到什么:
Company name
Customer name
company address
我想要得到什么:
Company name
company address
Customer name
我发现我可以创建一个自定义分析器,但也许还有更好的选择?
最佳答案
使用multifields将文本字段索引为小写关键字,并使用 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"
}
}
]
}
关于javascript - 使用elasticsearch按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353815/