curl -XGET 'http://localhost:9200/alias-*/*/_search?pretty' -d '{

"size" : 0,

"query" : {

"function_score" : {

"query" : {

"filtered" : {

"filter" : {

"bool" : {

"should" : [ {

"match" : {

"_all" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

}, {

"match" : {

"company_name" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

}, {

"match" : {

"title" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

} ],

"minimum_should_match" : "1"

}

}

}

},

"functions" : [ {

"filter" : {

"match" : {

"_all" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

},

"weight" : 2.0

}, {

"filter" : {

"match" : {

"company_name" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

},

"weight" : 8.0

}, {

"filter" : {

"match" : {

"title" : {

"query" : "电子",

"type" : "boolean",

"operator" : "AND"

}

}

},

"weight" : 4.0

}, {

"filter" : {

"range" : {

"seling_auction_cnt" : {

"from" : 0,

"to" : null,

"include_lower" : false,

"include_upper" : true

}

}

},

"weight" : 1.0

}, {

"field_value_factor" : {

"field" : "company_score",

"factor" : 1.0E-6

}

} ],

"score_mode" : "sum"

}

},


"aggs" : {

"agg" : {

"terms" : {

"field" : "member_id",

"size" : 0,

"order" : {

"top_hit" : "desc"

}

},

"aggregations" : {

"top_hit" : {

"max" : {

"script" : {

"inline" : "_score"

}

}

}

}

},

"agg1" : {

"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[tmp]) { combined[tmp] = 1 } }; return combined",

"reduce_script": "reduced = []; for (a in _aggs) { for (entry in a) { reduced.add(entry.key); } }; return reduced"

}

},

"agg2" : {

"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[tmp]) { combined[tmp] = 1 } }; return combined",

"reduce_script": "reduced = [:]; for (a in _aggs) { for (entry in a) { word = entry.key; if (!reduced[word] ) { reduced[word] = entry.value; } } }; return reduced"

}

}

}

}'