From 4f86942ea27bc7db73fcd4920a8f7e4719028cd0 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Tue, 9 Nov 2021 10:22:51 +0800 Subject: [PATCH] feat: There is no way the, elasticsearch --- .../service/impl/SearchCenterServiceImpl.java | 85 ++++++++++--------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index 34835de1..b0dd13fa 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -699,7 +699,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { // 高级搜索项,只针对标准 if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*")); + boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+"*")); } if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) { boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*")); @@ -823,13 +823,6 @@ public class SearchCenterServiceImpl implements SearchCenterService { "JASO","JIS","GSO","GOST","ΓOCT","TP","SASO","UAE","CONTRAN","DENATRAN","ABNT NBR","NBR","INMETRO","CONAMA","Normative Instruction","ADR"}; String[] bussStandVerify = {"Q/FT A","Q/FT B","Q/FT E","Q/FT F","Q/FT G","Q/FT M","Q/FT Q","Q/FT R","Q/FT S","Q/FT T","Q/FT V","Q/FT X","Q/FT Y","Q/FT Z","Q/QCBFC"}; List list = new ArrayList<>(); - if(standType.equals("INLAND")){ - list = Stream.of(standVerify).collect(Collectors.toList()); - }else if(standType.equals("bussstand")){ - list = Stream.of(bussStandVerify).collect(Collectors.toList()); - }else if(standType.equals("FOREIGN")){ - list = Stream.of(standEnVerify).collect(Collectors.toList()); - } Map map = new HashMap<>(); for (int i = 0; i < seniortype.length; i++) { @@ -842,44 +835,54 @@ public class SearchCenterServiceImpl implements SearchCenterService { result = SearchResponseToList(response); searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits().value); Map aggmap = response.getAggregations().asMap(); - if (!result.isEmpty()) { - for (int i = 0; i < seniortype.length; i++) { - //分组后得到的数据整合 - Object results = aggmap.get("by_" + seniortype[i]); - if(results instanceof StringTerms){ - StringTerms stResult = (StringTerms) results; - Map submap = new HashMap<>(); - for (StringTerms.Bucket bucket : stResult.getBuckets()) { - // 多选处理,当前全部允许多选 - String keyName = bucket.getKeyAsString(); - String[] keyNameList = keyName.split(","); - // 对于属性允许多选,此处做出处理 - if(keyNameList.length>0){ - for (String itemKeyName: keyNameList){ - // put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加 - keyNameFilter(standType, list, submap, bucket, itemKeyName); + + if(StringUtils.isNotBlank(standType)){ + if(standType.equals("INLAND")){ + list = Stream.of(standVerify).collect(Collectors.toList()); + }else if(standType.equals("bussstand")){ + list = Stream.of(bussStandVerify).collect(Collectors.toList()); + }else if(standType.equals("FOREIGN")){ + list = Stream.of(standEnVerify).collect(Collectors.toList()); + } + if (!result.isEmpty()) { + for (int i = 0; i < seniortype.length; i++) { + //分组后得到的数据整合 + Object results = aggmap.get("by_" + seniortype[i]); + if(results instanceof StringTerms){ + StringTerms stResult = (StringTerms) results; + Map submap = new HashMap<>(); + for (StringTerms.Bucket bucket : stResult.getBuckets()) { + // 多选处理,当前全部允许多选 + String keyName = bucket.getKeyAsString(); + String[] keyNameList = keyName.split(","); + // 对于属性允许多选,此处做出处理 + if(keyNameList.length>0){ + for (String itemKeyName: keyNameList){ + // put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加 + keyNameFilter(standType, list, submap, bucket, itemKeyName); + } + } + else { + keyNameFilter(standType, list, submap, bucket, keyName); } } - else { - keyNameFilter(standType, list, submap, bucket, keyName); - } + map.put(seniortype[i], submap); + } + else{ + Map submap = new HashMap<>(); + map.put(seniortype[i], submap); } - map.put(seniortype[i], submap); - } - else{ - Map submap = new HashMap<>(); - map.put(seniortype[i], submap); - } + } + if(standType.equals("bussstand")){ + map.forEach((s, o) -> { + if(s.equals("numbershow")){ + map.put("standSort",o); + } + }); + } + result.get(0).put("groupdata", map); } - if(standType.equals("bussstand")){ - map.forEach((s, o) -> { - if(s.equals("numbershow")){ - map.put("standSort",o); - } - }); - } - result.get(0).put("groupdata", map); } return result; }