Range 没有正确过滤我的文档

Range does not filter my documents properly

我是一种迷茫。我的弹性搜索文档中有一个 category_id,例如:

[
 {
"id": "80029",
"categoryId": "43227",
"channelId": "54322",
"channelName": "xxxxx2222",

现在在elastic search中,我根据category id的范围搜索如下:

  {
 "query": {
   "range": {
    "category_id": {
    "lt": 1000032270000
    }
  }
}
 }

我什么也没得到,但很明显 1000032270000 大于 43227,我希望得到记录。更令人惊讶的是,当我将 1000032270000 更改为 9000032270000 时,我得到了结果。那么我的问题是什么?如何正确使用过滤我的文档? (我正在寻找 4000 小于 10000 的所有文件)

假设这是因为字符串映射。如果不是这种情况,我将进行编辑。

确保将 "category_id" 的映射设置为数字。尝试将其作为该字段的映射(您需要在摄取文档之前使用映射重新创建索引,或者重新索引到另一个索引)

PUT {YOUR_INDEX}
{
  "mappings" :{
    "{YOUR_TYPE}":{
      "properties": {
        "category_id": {
          "type": "long"
        }
      }
    }
  }
}