q29191 发表于 2019-1-28 14:18:38

elasticsearch aggregation script

  返回map
  "scripted_terms": {
  "scripted_metric": {
  "init_script": "_agg[\"prd\"] = []",
  "map_script": "if(doc[\"cat2_id\"].value) {_agg.prd.add(doc[\"cat2_id\"].value.toString())}",
  "combine_script": "combined = [:]; for (tmp in _agg.prd) { if(!combined) { combined = 1 } }; return combined",
  "reduce_script": "reduced = [:]; for (a in _aggs) {for (entry in a) { word = entry.key; if (!reduced ) { reduced = entry.value; }} }; return reduced"
  }
  }
  

  

  返回array
  "scripted_terms": {
  "scripted_metric": {
  "init_script": "_agg[\"prd\"] = []",
  "map_script": "if(doc[\"cat2_id\"].value) {_agg.prd.add(doc[\"cat2_id\"].value.toString())}",
  "combine_script": "combined = [:]; for (tmp in _agg.prd) { if(!combined) { combined = 1 } }; return combined",
  "reduce_script": "reduced = []; for (a in _aggs) { for (entry in a) {reduced.add(entry.key);} }; return reduced"
  }
  }
  

  统计求和
  "agg1" : {
  "scripted_metric" : {
  "init_script" : {
  "inline" : "_agg[\"prd\"] = []"
  },
  "map_script" : {
  "inline" : "if(doc[\"cat2_id\"].value) {_agg.prd.add(doc[\"cat2_id\"].value.toString())}"
  },
  "combine_script" : {
  "inline" : "combined = [:]; for (tmp in _agg.prd) { if(!combined) { combined = 1 } else { combined=combined+1 } }; return combined"
  },
  "reduce_script" : {
  "inline" : "reduced = [:]; for (a in _aggs) {for (entry in a) { word = entry.key; if (!reduced ) { reduced = entry.value; } else { reduced=reduced+entry.value}} }; return reduced"
  }
  }
  }
  




页: [1]
查看完整版本: elasticsearch aggregation script