From 6f7e92f6864bb772e1f8f4da04029287db29f6f4 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Sat, 30 Oct 2021 21:06:07 +0800 Subject: [PATCH] feat: There is no way the, LAWS --- .../da/search/entity/SeniorSearchInfoEO.java | 4 + .../service/impl/SearchCenterServiceImpl.java | 129 ++++++++++-------- .../java/com/adc/da/mq/SendLawsMQService.java | 2 +- 3 files changed, 77 insertions(+), 58 deletions(-) diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java index 283b735a..222fae10 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java @@ -31,6 +31,9 @@ public class SeniorSearchInfoEO extends BasePage { @ApiModelProperty(value = "标准分类") private String standType; + @ApiModelProperty(value = "搜索分类") + private String type; + @ApiModelProperty(value = "国家地区") private String country; @@ -263,6 +266,7 @@ public class SeniorSearchInfoEO extends BasePage { private String lawsBulletin; private String lawsLabel; private String lawsRemark; + private String CYSDLAWS; 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 571a0f68..99ae7e92 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 @@ -221,55 +221,48 @@ public class SearchCenterServiceImpl implements SearchCenterService { RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); boolQueryShould.should(rangeQueryBuilder); } - boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*")); +// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*")); break; case "laws": - boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("ZRLXShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("isRelateAccess", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("YQLXShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("GXHBQShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("XCXSSRQ", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("ZCCSSRQ", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("EOPSSRQ", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("ZCGCSShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("FBJG", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("SVPPSName", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("XGBMShow", "*"+searchInfoEO.getSelectValue()+"*")) -// .should(QueryBuilders.wildcardQuery("ZRBMName", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("ZRBMShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("FOShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("GKGLBMShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("content", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("WSSFCYShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("replaceLawsNum", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("replacedLawsNum", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("XMPGJSShow", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("XGLC", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("stand_number", "*"+searchInfoEO.getSelectValue()+"*")); +// boolQueryShould.should(QueryBuilders.wildcardQuery("lawsTypeName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("issueCompany.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsTextStateName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsYearName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsBulletin.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsLabel.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsRemark.keyword", "*"+searchInfoEO.getSelectValue()+"*")); + if (isRqFormat(searchInfoEO.getSelectValue())) { + Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder); + RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("commentCycleStart_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder2); + RangeQueryBuilder rangeQueryBuilder3 = QueryBuilders.rangeQuery("commentCycleEnd_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder3); + } break; case "bussstand": - boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*")); +// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*")); if (isRqFormat(searchInfoEO.getSelectValue())) { Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); @@ -286,6 +279,9 @@ public class SearchCenterServiceImpl implements SearchCenterService { if(boolQueryShould!=null){ boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + if (StringUtils.isNotBlank(searchInfoEO.getType())) { + boolQueryShould.must(QueryBuilders.wildcardQuery("type.keyword", "*"+searchInfoEO.getType()+"*")); + } if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); } @@ -295,13 +291,21 @@ public class SearchCenterServiceImpl implements SearchCenterService { if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsSyqy())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+searchInfoEO.getLawsSyqy()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsSycx())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSycx.keyword", "*"+searchInfoEO.getLawsSycx()+"*")); + } boolQueryBuilder.must(boolQueryShould); }else { boolQueryBuilder.must(boolQueryShould); } //在结果中检索 - if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isNotBlank(searchInfoEO.getIsHigh())) { + if (StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && !isRqFormat(searchInfoEO.getSelectValue())) { QueryBuilder multiQuery = queryInResult(searchInfoEO); boolQueryBuilder.must(multiQuery); } @@ -376,9 +380,15 @@ public class SearchCenterServiceImpl implements SearchCenterService { collectAttrMap.put("CLLX",array); } + if(searchInfoEO.getCYSDLAWS() != null && StringUtils.isNotBlank(searchInfoEO.getCYSDLAWS())){ + List fieldList = Arrays.asList(searchInfoEO.getCYSDLAWS() .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + JSONArray array= JSONArray.parseArray(JSON.toJSONString(fieldList)); + collectAttrMap.put("CYSDLAWS",array); + } + } - List fieldList = getStringField(); + List fieldList = getStringField(searchInfoEO); // 自动匹配动态属性字段 es 查询 for (String field : fieldList) { // 关键字查询属性字段 @@ -414,7 +424,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { // } } if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) { - boolQueryBuilder.should(boolQueryBuilderMust); +// boolQueryBuilder.should(boolQueryBuilderMust); if(searchInfoEO.getQCDW() != null && StringUtils.isNotBlank(searchInfoEO.getQCDW())){ List list = Arrays.asList(searchInfoEO.getQCDW().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); if(list.size() > 1){ @@ -459,7 +469,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { return boolQueryBuilder; } - private List getStringField() { + private List getStringField(SeniorSearchInfoEO searchInfoEO) { String fieldInfo = InitStandAttrSearchUtil.queryField; String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws; String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss; @@ -467,9 +477,15 @@ public class SearchCenterServiceImpl implements SearchCenterService { List fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); List fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); List fieldList = new ArrayList<>(); - fieldList.addAll(fieldInfoList); - fieldList.addAll(fieldLawsInfoList); - fieldList.addAll(fieldBussInfoList); + if(StringUtils.isNotBlank(searchInfoEO.getSelectIndex())){ + if(searchInfoEO.getSelectIndex().equals("stand")){ + fieldList.addAll(fieldInfoList); + }else if(searchInfoEO.getSelectIndex().equals("bussstand")){ + fieldList.addAll(fieldBussInfoList); + }else if(searchInfoEO.getSelectIndex().equals("laws")){ + fieldList.addAll(fieldLawsInfoList); + } + } return fieldList; } @@ -704,13 +720,12 @@ public class SearchCenterServiceImpl implements SearchCenterService { // 记录搜索记录到数据库中 QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery(""); BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); - List fieldList = getStringField(); + List fieldList = getStringField(searchInfoEO); List fieldNameList = new ArrayList<>(); String[] standStr = {"content","standSort","standNumber","standYear","stand_name","standEnName","standNatureName", "textStatusName","isRelateAccessName","numbershow","standSystem"}; - String[] lawsStr = {"content","lawsType","lawsNumber","lawsName","lawsEnName","lawsNo","issueTime","issueCompany","commentCycleStart", - "commentCycleEnd","lawsTextState","lawsSyqy","lawsSycx","isRelateAccess","lawsYear","lawsNotisyncNum","lawsBulletin","lawsLabel","lawsRemark"}; - String[] bussstandStr = {"content","standSort","stand_code","standYear","stand_name","standEnName","textStatusBuss"}; + 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"}; for (String field : fieldList) { // 关键字查询属性字段 String keyWordField2 = field + "Name"; @@ -764,7 +779,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { String[] seniortypeStand = {"standSort", "statecode","CYSD","ZRLX","CLLX","CBCD","textStatus","textStatusName"}; seniortype = seniortypeStand.clone(); } else if("laws".equals(searchInfoEO.getSelectIndex())){ - String[] seniortypeLaws = {"country","statecode","SYCLLX","ZRLX","WSSFCY"}; + String[] seniortypeLaws = {"lawsSyqy","lawsSycx","CYSDLAWS"}; seniortype = seniortypeLaws.clone(); } else if ("bussstand".equals(searchInfoEO.getSelectIndex())) { String[] seniortypeBuss = {"textStatusBuss","QCDW"}; diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java index 92c47cc2..14e469d8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java @@ -90,7 +90,7 @@ public class SendLawsMQService { String baseSearchContent = ""; String getCodeName = ""; Map saveMap = new HashMap<>(); - + saveMap.put("standType","laws"); //发布日期 高级查询 saveMap.put("issueTime",dateFormatToStr(infoEO.getIssueTime())); Date issue_time_data = null;