我在ElasticSearch中有用户信息,我想查询人员并按姓氏对结果进行排序,当我运行
{
"size": 10,
"query": {
"bool": {
"adjust_pure_negative": true,
"boost": 1.0
}
},
"sort": [{ "last_name": { "order": "desc" } }]
}
我得到的结果是以空格开头,并且以小写字母开头。我想进行不区分大小写的排序,并在排序时忽略空格。
例如,输出的一部分是
{
"first_name": "test",
"last_name": "test"
},
{
"first_name": "name",
"last_name": "mangina"
},
{
"first_name": "Nona",
"last_name": "Zucker"
}
我期望Z是降序的第一个。
1条答案
按热度按时间krcsximq1#
因为不分析关键字数据类型(即字段值),所以当ES比较“t”的第一个字符(ASCII值116)与“Zucker”的第一个字符(ASCII值90)时,由于ASCII值的原因,“t”在此处具有较高的等级,并且“test”是结果中的第一条记录。
你必须包括你自己的分析器.你可以用下面的方法.
Map:
插入文件:
质询:
输出: