gpt4 book ai didi

sorting - Elasticsearch:排序整数desc

转载 作者:行者123 更新时间:2023-12-02 22:17:39 26 4
gpt4 key购买 nike

使用查询在elasticsearch(版本“1.1.2”)中按整数字段排序时:

{
"query": {
"match_all": {}
},
"sort": [
{
"cubicCapacity": {
"order": "asc",
"ignore_unmapped": true
}
}
],
"from": 0,
"size": 150
}

结果是正确的,并且文档以自然顺序排序(1、2、5、10)

但是,当尝试使用“desc”完成相同的查询时:
{
"query": {
"match_all": {}
},
"sort": [
{
"cubicCapacity": {
"order": "desc",
"ignore_unmapped": true
}
}
],
"from": 0,
"size": 150
}

结果不正确,文档以某种奇怪的方式排序,但预期为(10,5,2,1)。

那么,为什么用 "desc"排序却不能以自然顺序给出正确的结果?

附言当按asc / desc排序但字符串类型为(1、10、2、5)时, "desc"可正常工作(5、2、10、1)

最佳答案

您应该在数字前添加零,因此您将拥有[0001,0010,0002,0005]而不是[1、10、2、5]。
您要添加的前导零的数量将取决于您认为将拥有的最大值。
例如如果您认为它将少于100亿,那么应该存储0000000005(9个零)而不是5和0000000010(8个零)而不是10

关于sorting - Elasticsearch:排序整数desc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25199481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com