diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 5ff59c41..a70a33e6 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -121,6 +121,7 @@ public class WebMvcConfig implements WebMvcConfigurer { // 重置ES addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/resetALLSearchCenter"); + addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/manualResetALLSearchCenter"); addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/resetAStandSearchCenter"); addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/resetBLawsSearchCenter"); addInterceptor.excludePathPatterns("/api/search/resetSearchCenter/resetCBussStandSearchCenter"); 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 3469ce58..1fff2406 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 @@ -80,11 +80,11 @@ public class SearchCenterServiceImpl implements SearchCenterService { BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); - + updateIndex(searchInfoEO.getSelectIndex()); searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) - .addSort("issueTime", SortOrder.DESC) + .addSort("issue_time_data", SortOrder.DESC) .setSize(searchInfoEO.getPageSize()); if(searchInfoEO.getSelectIndex().equals("stand")) { @@ -207,11 +207,18 @@ public class SearchCenterServiceImpl implements SearchCenterService { BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); - + updateIndex(searchInfoEO.getSelectIndex()); + String sortField = ""; + if("laws".equals(searchInfoEO.getSelectIndex())){ + sortField = "lawsYear"; + }else { + sortField = "standYear"; + } searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) - .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) - .addSort("issueTime", SortOrder.DESC) + .addSort(sortField, SortOrder.DESC) + .addSort("issue_time_data", SortOrder.DESC) .setSize(searchInfoEO.getPageSize()); if(searchInfoEO.getSelectIndex().equals("stand")) { @@ -322,7 +329,34 @@ public class SearchCenterServiceImpl implements SearchCenterService { //在结果中检索 if (StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && !isRqFormat(searchInfoEO.getSelectValue())) { QueryBuilder multiQuery = queryInResult(searchInfoEO); - boolQueryBuilder.must(multiQuery); + BoolQueryBuilder boolSelectValue = new BoolQueryBuilder(); + boolSelectValue.should(multiQuery); + switch (searchInfoEO.getSelectIndex()){ + case "stand": + boolSelectValue + .should(QueryBuilders.wildcardQuery("standSort.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f)) + .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f)) + .should(QueryBuilders.wildcardQuery("standYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f)) + .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f)); + break; + case "laws": + boolSelectValue + .should(QueryBuilders.wildcardQuery("lawsType.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f)) + .should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f)) + .should(QueryBuilders.wildcardQuery("lawsYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f)) + .should(QueryBuilders.wildcardQuery("lawsName.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1001f)); + + break; + case "bussstand": + boolSelectValue + .should(QueryBuilders.wildcardQuery("standSort.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1005f)) + .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1003f)) + .should(QueryBuilders.wildcardQuery("standYear.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1002f)) + .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*" + searchInfoEO.getSelectValue().toUpperCase() + "*").boost(1000f)); + break; + default: break; + } + boolQueryBuilder.must(boolSelectValue); } searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true); @@ -764,10 +798,10 @@ public class SearchCenterServiceImpl implements SearchCenterService { BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); List fieldList = getStringField(searchInfoEO); List fieldNameList = new ArrayList<>(); - String[] standStr = {"content","standSort","standNumber","standYear","stand_name","standEnName","standNatureName", + String[] standStr = {"content","standEnName","standNatureName", "textStatusName","isRelateAccessName","numbershow","standSystem","NYLXCLASS","CLLX"}; - String[] lawsStr = {"content","lawsType","lawsNumber","lawsName","lawsEnName","lawsNo","issueCompany","lawsTextState","lawsSyqy","lawsSycx","isRelateAccess","lawsYear","lawsNotisyncNum","lawsBulletin","lawsLabel","lawsRemark"}; - String[] bussstandStr = {"content","standSort","stand_code","standYear","stand_name","standEnName","nameshow","standstateshow","numbershow","textStatusBuss","textStatusBussName","NYLXCLASS","CLLX"}; + String[] lawsStr = {"content","lawsEnName","lawsNo","issueCompany","lawsTextState","lawsSyqy","lawsSycx","isRelateAccess","lawsNotisyncNum","lawsBulletin","lawsLabel","lawsRemark"}; + String[] bussstandStr = {"content","stand_code","standEnName","nameshow","standstateshow","numbershow","textStatusBuss","textStatusBussName","NYLXCLASS","CLLX"}; for (String field : fieldList) { // 关键字查询属性字段 String keyWordField2 = field + "Name"; @@ -779,7 +813,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { listStrings.addAll(fieldNameList); String[] fieldArr = listStrings.stream().toArray(String[]::new); multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldArr - ).minimumShouldMatch("100%"); + ).minimumShouldMatch("100%").boost(1L); // boolQueryBuilder.should(); // for (String field : fieldList) { // // 关键字查询属性字段 @@ -792,14 +826,14 @@ public class SearchCenterServiceImpl implements SearchCenterService { listStringLaws.addAll(fieldNameList); String[] fieldLawsArr = listStringLaws.stream().toArray(String[]::new); multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldLawsArr - ).minimumShouldMatch("100%"); + ).minimumShouldMatch("100%").boost(1L); break; case "bussstand": List listStringBussstand = Stream.of(bussstandStr).collect(Collectors.toList()); listStringBussstand.addAll(fieldNameList); String[] fieldBussstandArr = listStringBussstand.stream().toArray(String[]::new); multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldBussstandArr - ).minimumShouldMatch("100%"); + ).minimumShouldMatch("100%").boost(1L); break; default: break; } @@ -1221,10 +1255,11 @@ public class SearchCenterServiceImpl implements SearchCenterService { hiBuilder.field(highlightDate); hiBuilder.preTags(""); hiBuilder.postTags(""); - updateIndex("fulltextserch",(searchInfoEO.getPage()-1)*searchInfoEO.getPageSize(),searchInfoEO.getPageSize()); + updateIndex("fulltextserch"); searchRequestBuilder = client.prepareSearch("fulltextserch") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .highlighter(hiBuilder) + .addSort("issue_time_order",SortOrder.DESC) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .setSize(searchInfoEO.getPageSize()); @@ -1515,7 +1550,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { hiBuilder.preTags(""); hiBuilder.postTags(""); - updateIndex("fulltextserch",(searchInfoEO.getPage()-1)*searchInfoEO.getPageSize(),searchInfoEO.getPageSize()); + updateIndex("fulltextserch"); searchRequestBuilder = client.prepareSearch("fulltextserch") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .highlighter(hiBuilder) @@ -1580,14 +1615,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { } //更新索引的max_result_window参数 - private boolean updateIndex(String indices, int from,int size) { - int records = from * size + size; - if (records <= 10000) return true; + private boolean updateIndex(String indices) { AcknowledgedResponse indexResponse = client.admin().indices() .prepareUpdateSettings(indices) .setSettings(Settings.builder() - .put("index.max_result_window", records) - .put("highlight.max_analyzed_offset", records) + .put("index.max_result_window", 100000000) + .put("highlight.max_analyzed_offset", 100000000) + .put("index.highlight.max_analyzed_offset", 100000000) .build() ).get(); return indexResponse.isAcknowledged(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/SendStandMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/SendStandMQService.java index f8082445..9bcc232a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/mq/SendStandMQService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/SendStandMQService.java @@ -80,7 +80,10 @@ public class SendStandMQService { } } String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr(); - Map attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); + Map attrInfoMap = new TreeMap<>(); + if(StringUtils.isNotBlank(sarStandAttrEOStr)){ + attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); + } Map infoMap = infoEO.getAttrInfoMap(); Map infoEOMapItems = infoEO.getMapItems(); @@ -178,15 +181,25 @@ public class SendStandMQService { // 动态存储属性字段 for (String field : fieldInfoList) { - saveMap.put(field,attrInfoMap.getOrDefault(field,"")); - String fieldValue = ""; - if(infoMap.get(field) != null && StringUtils.isNotBlank(infoMap.get(field).toString())){ - Object json= new JSONTokener(infoMap.get(field).toString()).nextValue(); - if(!json.toString().equals("null")){ - fieldValue = infoMap.get(field).toString(); + String fieldValue = ""; + try { + saveMap.put(field,attrInfoMap.getOrDefault(field,"")); + if(infoMap.get(field) != null && StringUtils.isNotBlank(infoMap.get(field).toString())){ + Object json= new JSONTokener(infoMap.get(field).toString()).nextValue(); + if(json instanceof org.json.JSONArray){ + fieldValue = String.join(",", com.alibaba.fastjson.JSONObject.parseArray(standMap.get(field).toString(),String.class)); + }else { + if(!("null").equals(json)){ + fieldValue = standMap.get(field).toString(); + } + } } + saveMap.put(field+"Name",fieldValue); + }catch (Exception e){ + logger.info("国内外标准 消息队列: "+addOrUpdate+", 标准ID:"+infoEO.getId()+",问题字段:"+field); + saveMap.put(field+"Name",fieldValue); } - saveMap.put(field+"Name",fieldValue); + } if(infoEOMapItems != null && !infoEOMapItems.isEmpty()){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/ResetSearchCenterController.java b/adc-da-slrs/src/main/java/com/adc/da/search/ResetSearchCenterController.java index 0635b408..90b7cf85 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/ResetSearchCenterController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/ResetSearchCenterController.java @@ -39,6 +39,17 @@ public class ResetSearchCenterController extends BaseController