如何在Elasticsearch中对数组字段执行排序操作?

时间:2018-07-05 11:31:58

标签: elasticsearch elasticsearch-5

我正在使用ES版本2.3.1。实际上,在弹性搜索中,有20亿个文档限制,这就是为什么我要创建数组字段的原因,在该字段中,我会将所有文档保留为一个日期。 我有以下架构:-

{
"mappings": {
     "axes_type_test12": {
        "properties": {
           "totalData": {
              "type": "nested",
              "properties": {
                 "gpsdt": {
                    "type": "date",
        "format":"dateOptionalTime"
                 },
                 "analog1": {
                    "type": "integer"
                 },
                 "analog2": {
                    "type": "integer"
                 },
         "analog3" : {
        "type" : "integer"
         },
         "analog4": {
                    "type": "integer"
                 },
                 "digital1": {
                    "type": "integer"
                 },
         "digital2" : {
        "type" : "integer"
         },
         "digital3": {
                    "type": "integer"
                 },
         "digital4" : {
        "type" : "integer"
         },

         "lastgpsdt": {
                    "type": "date",
        "format":"dateOptionalTime"
                 }
              }
           },
           "imei": {
              "type": "long"
           },
           "date": {
              "type": "date", "format":"dateOptionalTime"
           },
       "id" : {
       "type" : "long"
    }
        }
     }
  }
}' 

我正在插入如下记录:-

{

"imei": 866561010511958,
"date": "2018-02-20",
"totalData": [{
    "analog4": 1,
    "analog3": 1,
    "analog2": 1,
    "analog1": 1
}, {
    "analog4": 2,
    "analog3": 2,
    "analog2": 2,
    "analog1": 2
}, {
    "analog4": 11,
    "analog3": 11,
    "analog2": 11,
    "analog1": 11
}, {
    "analog4": 9,
    "analog3": 9,
    "analog2": 9,
    "analog1": 9
}, {
    "analog4": 3,
    "analog3": 3,
    "analog2": 3,
    "analog1": 3
}, {
    "analog4": 4,
    "analog3": 4,
    "analog2": 4,
    "analog1": 4
}]
 }

现在,我必须通过一个名为“ analog1”的字段按升序对这些文档进行排序。

我尝试了以下查询,但没有成功。

{
"sort" : [
   {
      "totalData.analog1" : {
         "mode" :  "max",
         "order" : "asc",
         "nested_path" : "totalData"
      }
   }
]
}

0 个答案:

没有答案