Elasticsearch ID 排序问题:数字大小排序结果错误 (1, 10, 11, 2, 3, 4...) 解决方法
要解决 Elasticsearch 中 ID 排序问题,导致数字大小排序结果错误(例如 1, 10, 11, 2, 3, 4...),您可以使用 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/qaHI 著作权归作者所有。请勿转载和采集!