我正在进行Elasticsearch查询,我想要按照姓氏字母顺序排序结果。我的问题是:这些姓氏都是西班牙式的双重姓名,ES并不能按照我期望的方式进行排序。 我希望排序的顺序如下:
Batres Rivera
Batrín Chojoj
Fion Morales
Lopez Giron
Martinez Castellanos
Milán Casanova
这是我的查询:
{
"query": {
"match_all": {}
},
"sort": [
{
"Last Name": {
"order": "asc"
}
}
]
}
我获得的顺序是:
Batres Rivera
Batrín Chojoj
Milán Casanova
Martinez Castellanos
Fion Morales
Lopez Giron
因此,它不是按照第一个字符串排序,而是根据两者之一进行排序(Batres、Batrín、Casanova、Castellanos、Fion、Giron)。
如果我尝试进行其他操作
{
"order": "asc",
"mode": "max"
}
然后我得到:
Batrín Chojoj
Lopez Giron
Martinez Castellanos
Milán Casanova
Fion Morales
Batres Rivera
所有字段默认都是索引的,我已经确认过了
curl -XGET localhost/my_index/_mapping
并且我得到了回复
my_index: {
my_type: {
properties: {
FirstName: {
type: string
}LastName: {
type: string
}MiddleName: {
type: string
}
...
}
}
}
有没有人知道如何通过姓氏的开头字符串按字母顺序对结果进行排序?
谢谢!