Elasticsearch 根据数字大小对id进行排序后结果为11011234……如何解决
要解决这个问题,你可以使用Elasticsearch的排序功能,并将id字段设置为keyword类型。然后,在进行排序时,可以使用"numeric"排序模式来确保按照数字大小进行排序。
具体的步骤如下:
- 确保id字段的mapping设置为keyword类型,示例如下:
{
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
// 其他字段...
}
}
}
- 在查询中使用"numeric"排序模式对id字段进行排序,示例如下:
{
"query": {
// 查询条件...
},
"sort": [
{
"id": {
"order": "asc",
"mode": "min",
"numeric_type": "long"
}
}
]
}
这样,Elasticsearch将会按照数字大小对id字段进行排序,得到正确的结果:1,2,3,4,10,11等
原文地址: https://www.cveoy.top/t/topic/is8d 著作权归作者所有。请勿转载和采集!