Elasticsearch类似 GROUP_CONCAT 方式的查询
mysql 的GROUP_CONCAT函数,可以把聚合后的数据连接到一起,在ES中,把聚合函数命中的数据展示出来就行,了解了这个,就好办了
查询示例
GET bidding_pool/_search
{
"size": 0,
"query": {
"match_phrase": {
"project_name": "公告" //短语查询,对项目名称 包含 “公告” 的数据做聚合
}
},
"aggs": {
"name": {
"terms": {
"field": "province_code" // 首先根据 省份编码
},
"aggs": {
"name": {
"terms": {
"field": "content_type" // 然后再用 公告类型 , 两者联合,类似mysql group by a,b
},
"aggs": {
"top_users": {
"top_hits": {
"_source": ["id","project_name","province_name","province_code"], //返回命中数据字段
"size":100
}
}
}
}
}
}
}
}
返回数据样例
{
"took" : 7,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 46,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 7,
"buckets" : [
{
"key" : "20845",
"doc_count" : 23,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "合同公告",
"doc_count" : 19,
"top_users" : {
"hits" : {
"total" : {
"value" : 19,
"relation" : "eq"
},
"max_score" : 0.24642897,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "0000f292-98df-11eb-b872-5254001bea8e",
"_score" : 0.24642897,
"_source" : {
"id" : "0000f292-98df-11eb-b872-5254001bea8e",
"project_name" : "医疗设备采购的合同公告",
"province_code" : "20845",
"province_name" : "广西"
}
}
]
}
}
},
{
"key" : "招标信息",
"doc_count" : 4,
"top_users" : {
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 0.1472174,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "000079a5-8568-11eb-b872-5254001bea8e",
"_score" : 0.1472174,
"_source" : {
"id" : "000079a5-8568-11eb-b872-5254001bea8e",
"project_name" : "2020-2022年隆林各族自治县储备土地中土地征收、收购、收回涉及的拆迁安置补偿项目服务(BSZC2021-G3-310033-GXGS)公开招标公告",
"province_code" : "20845",
"province_name" : "广西壮族自治区"
}
}
]
}
}
}
]
}
},
{
"key" : "37571",
"doc_count" : 4,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 4,
"top_users" : {
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 0.18565783,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "00018852-8568-11eb-b872-5254001bea8e",
"_score" : 0.18565783,
"_source" : {
"id" : "00018852-8568-11eb-b872-5254001bea8e",
"project_name" : "南京信息职业技术学院数字商务学院网络改造项目公开招标公告",
"province_code" : "37571",
"province_name" : "江苏省"
}
}
]
}
}
}
]
}
},
{
"key" : "37493",
"doc_count" : 3,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 3,
"top_users" : {
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : 0.16854326,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "00026e64-8568-11eb-b872-5254001bea8e",
"_score" : 0.16854326,
"_source" : {
"id" : "00026e64-8568-11eb-b872-5254001bea8e",
"project_name" : "上海市青浦区金泽镇社区卫生服务中心过氧化氢消毒系统采购项目公开招标公告",
"province_code" : "37493",
"province_name" : "上海"
}
}
]
}
}
}
]
}
},
{
"key" : "34881",
"doc_count" : 2,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 2,
"top_users" : {
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 0.19709426,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "0000ac09-8568-11eb-b872-5254001bea8e",
"_score" : 0.19709426,
"_source" : {
"id" : "0000ac09-8568-11eb-b872-5254001bea8e",
"project_name" : "山东省某单位水土保持方案技术服务项目公开招标公告",
"province_code" : "34881",
"province_name" : "山东省"
}
}
]
}
}
}
]
}
},
{
"key" : "35412",
"doc_count" : 2,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 2,
"top_users" : {
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 0.22880663,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "000099fd-8568-11eb-b872-5254001bea8e",
"_score" : 0.22880663,
"_source" : {
"id" : "000099fd-8568-11eb-b872-5254001bea8e",
"project_name" : "李遂镇河道清理项目公开招标公告",
"province_code" : "35412",
"province_name" : "北京"
}
}
]
}
}
}
]
}
},
{
"key" : "14887",
"doc_count" : 1,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 1,
"top_users" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.1377129,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "0001101e-8568-11eb-b872-5254001bea8e",
"_score" : 0.1377129,
"_source" : {
"id" : "0001101e-8568-11eb-b872-5254001bea8e",
"project_name" : "紫金县地方公路管理站国道G236线紫金黄花至城西段及黄花至新S242线公路改建工程高、低压电缆迁移服务采购项目招标公告",
"province_code" : "14887",
"province_name" : "广东省"
}
}
]
}
}
}
]
}
},
{
"key" : "14928",
"doc_count" : 1,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 1,
"top_users" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.19410507,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "000024b3-8568-11eb-b872-5254001bea8e",
"_score" : 0.19410507,
"_source" : {
"id" : "000024b3-8568-11eb-b872-5254001bea8e",
"project_name" : "湘南学院附属医院大输液药品配送采购项目公开招标公告",
"province_code" : "14928",
"province_name" : "湖南省"
}
}
]
}
}
}
]
}
},
{
"key" : "24543",
"doc_count" : 1,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 1,
"top_users" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.1601093,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "0002a0e9-8568-11eb-b872-5254001bea8e",
"_score" : 0.1601093,
"_source" : {
"id" : "0002a0e9-8568-11eb-b872-5254001bea8e",
"project_name" : "吉林市丰满区江南乡人民政府吉林化工学院新址用地土壤污染情况详细调查公开招标公告",
"province_code" : "24543",
"province_name" : "吉林省"
}
}
]
}
}
}
]
}
},
{
"key" : "27800",
"doc_count" : 1,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 1,
"top_users" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.17547582,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "0000f024-8568-11eb-b872-5254001bea8e",
"_score" : 0.17547582,
"_source" : {
"id" : "0000f024-8568-11eb-b872-5254001bea8e",
"project_name" : "盘州市人民医院数字化彩色超声波诊断装置等设备采购项目(二次)采购公告",
"province_code" : "27800",
"province_name" : "贵州省"
}
}
]
}
}
}
]
}
},
{
"key" : "28125",
"doc_count" : 1,
"name" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "招标信息",
"doc_count" : 1,
"top_users" : {
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.16854326,
"hits" : [
{
"_index" : "bidding_pool",
"_type" : "_doc",
"_id" : "00013c12-8568-11eb-b872-5254001bea8e",
"_score" : 0.16854326,
"_source" : {
"id" : "00013c12-8568-11eb-b872-5254001bea8e",
"project_name" : "武汉大学中南医院武汉大学中南医院骨科手术机器人系统采购项目招标(采购)公告",
"province_code" : "28125",
"province_name" : "湖北省"
}
}
]
}
}
}
]
}
}
]
}
}
}
剩下的,就是在java里面解析这个返回结果就行

浙公网安备 33010602011771号