范围不能正确过滤我的文档

时间:2017-11-07 01:05:34

标签: elasticsearch elasticsearch-plugin elasticsearch-5

我有点困惑。我的弹性搜索文档中有一个category_id,如:

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

现在我在弹性搜索时根据类别ID的范围进行搜索,如下所示:

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

我什么也没收到,但显然1000032270000大于43227,我希望能够恢复记录。更令人惊讶的是,当我将1000032270000更改为9000032270000时,我得到了结果。那么我的问题是什么?如何正确使用过滤我的文件? (我正在寻找像所有文件一样磨损4000和不到10000)

1 个答案:

答案 0 :(得分:1)

假设这是因为字符串映射。如果不是这样,我会编辑。

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

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