要解决 Elasticsearch 中 ID 排序问题,导致数字大小排序结果错误(例如 1, 10, 11, 2, 3, 4...),您可以使用 Elasticsearch 的排序功能,并将 ID 字段设置为 keyword 类型。然后,在进行排序时,使用 'numeric' 排序模式来确保按照数字大小进行排序。

具体步骤如下:

  1. 确保 ID 字段的 mapping 设置为 keyword 类型,示例如下:
{
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      // 其他字段...
    }
  }
}
  1. 在查询中使用 'numeric' 排序模式对 ID 字段进行排序,示例如下:
{
  "query": {
    // 查询条件...
  },
  "sort": [
    {
      "id": {
        "order": "asc",
        "mode": "min",
        "numeric_type": "long"
      }
    }
  ]
}

通过以上步骤,Elasticsearch 将会按照数字大小对 ID 字段进行排序,得到正确的结果:1, 2, 3, 4, 10, 11 等。

Elasticsearch ID 排序问题:数字大小排序结果错误 (1, 10, 11, 2, 3, 4...) 解决方法

原文地址: https://www.cveoy.top/t/topic/qaHI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录