根据聚合中的脚本字段进行过滤

时间:2018-04-22 05:24:37

标签: elasticsearch elasticsearch-5 elasticsearch-aggregation

这是我的源代码:

{
  "size": 0, 
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "datetime": {
              "gte": "2017-04-01T00:00:00.000Z",
              "lte": "2018-03-31T23:59:59.999Z"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "all_match": {
      "filters": {
        "filters": {
          "all": {
            "match_all": {}
          }
        }
      },
      "aggs": {
        "jobs": {
          "terms": {
            "field": "job_num",
            "size": 200000
          },
          "aggs": {
            "latest_job": {
              "top_hits": { 
                "size": 1,
                "sort": [{"rec_date": "desc"}],
                "script_fields": {
                  "reqd_flag":{
                    "script": {
                      "lang": "painless",
                      "inline": "params['_source']['required_flag'] == 'Y' ? 0 : 1"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

}

我需要过滤掉< latest_job '中返回的记录。根据字段中显示的值进行汇总' reqd_flag '。

注意:' all_match '聚合是作为应用bucket_path的工作而创建的。

赞赏任何输入/指针/建议。

提前谢谢。

ElasticSearch forum link

GitHub link

0 个答案:

没有答案