diff --git a/adc-da-base/src/main/java/com/adc/da/xss/SQLFilter.java b/adc-da-base/src/main/java/com/adc/da/xss/SQLFilter.java index 1a0a5d41..60584f33 100644 --- a/adc-da-base/src/main/java/com/adc/da/xss/SQLFilter.java +++ b/adc-da-base/src/main/java/com/adc/da/xss/SQLFilter.java @@ -19,7 +19,7 @@ public class SQLFilter { for(int i$ = 0; i$ < len$; ++i$) { String keyword = arr$[i$]; - if (checkStr.indexOf(keyword) != -1 && checkStr.indexOf("selectindex") == -1 && checkStr.indexOf("selectvalue") == -1) { + if (checkStr.indexOf(keyword) != -1) { throw new AdcDaBaseException("包含非法字符"); } } 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 45e3f4a6..73f47f22 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 @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; @@ -56,10 +57,12 @@ public class SeniorSearchInfoEO extends BasePage { @ApiModelProperty(value = "标准发布日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") private Date issueTime; @ApiModelProperty(value = "实施日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") private Date putTime; @ApiModelProperty(value = "内容摘要") 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 6c6ad06d..cae8d7f6 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 @@ -68,63 +68,126 @@ public class SearchCenterServiceImpl implements SearchCenterService { List> result = new ArrayList<>(); SearchRequestBuilder searchRequestBuilder; BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); - // 记录搜索记录到数据库中 BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); - if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){ - QueryBuilder multiQueryBuilder; - List strings=new ArrayList<>(); - switch (searchInfoEO.getSelectIndex()){ - case "stand": - strings=Arrays.asList(numbershowSplit, nameshowSplit, numbershowStr, nameshowStr, "numberExpNull", "standSortShow", "standstateshow", "countryShow", "standEnName", "synopsis", "baseSearchContent", content, "CYSDShow", "CLLXShow", "standstateshow", "ZRLXShow", "stand_name", "stand_number", "citeStand", "DTBJH", "FGXXSXXXShow", "CBBH", "YYBJ", "XGLC", "synopsis", "isRelateAccess", "GKDWShow", "CYSDShow", "FBJGShow", "ZRLXShow", "GXHBQShow", "GZZXXName", "YQLXShow", "FGWHRName", "ZRBMShow", "XGBMShow", "SVPPSName", "FOShow", "XMPGJSShow", "BDTBZBH", "BYYBJ", "issue_time", "ZCCSSRQ", "XCXSSRQ", "accessCountry"); - break; - case "laws": - strings=Arrays.asList(numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num", - "synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJGShow","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC","accessCountry"); - break; - case "bussstand": - strings=Arrays.asList(numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr, - replacedStandNumStr,"countryShow","synopsis","standSortShow","ZQCBMShow","ZQCBM","stand_status", - "baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","replaceStandNum","replacedStandNum","QBMJShow","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","content","FSRQString","FZRQString","put_time","XGLC","WFSPJSName","GFXYYWJ"); - break; - default: break; - } - multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), strings.toArray(new String[0])).minimumShouldMatch("100%"); - boolQueryMust.must(multiQueryBuilder); - - for (String string : strings) { - boolQueryShould.should(QueryBuilders.wildcardQuery(string, "*"+searchInfoEO.getSelectValue()+"*")); - } - - - } - - //在结果中检索 - if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isBlank(searchInfoEO.getIsHigh())) { - QueryBuilder multiQuery = queryInResult(searchInfoEO); - boolQueryBuilder.must(multiQuery); - } searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .setSize(searchInfoEO.getPageSize()); - boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); - if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ - boolQueryBuilder.should(boolQueryShould); - } - BoolQueryBuilder boolQueryBuilder1=null; + if(searchInfoEO.getSelectIndex().equals("stand")) { - boolQueryBuilder1 = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); } else if(searchInfoEO.getSelectIndex().equals("laws")){ - boolQueryBuilder1 = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + boolQueryShould = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); } else if(searchInfoEO.getSelectIndex().equals("bussstand")){ - boolQueryBuilder1 = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + boolQueryShould = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); } - if(boolQueryBuilder1!=null){ - boolQueryBuilder.must(boolQueryBuilder1); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){ + QueryBuilder multiQueryBuilder; + switch (searchInfoEO.getSelectIndex()){ + case "stand": + 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("standName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*")); + break; + case "laws": + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num", + "synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJG","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC","accessCountry").minimumShouldMatch("100%"); + boolQueryMust.must(multiQueryBuilder); + boolQueryShould.should(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(numbershowSplit, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(nameshowSplit, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(content, "*"+searchInfoEO.getSelectValue()+"*")) + .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()+"*")); + break; + case "bussstand": + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr, + replacedStandNumStr,"countryShow","synopsis","standSortShow","ZQCBMShow","ZQCBM","stand_status", + "baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","replaceStandNum","replacedStandNum","QBMJShow","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","content","FSRQString","FZRQString","put_time","XGLC","WFSPJSName","GFXYYWJ","XGBMShow").minimumShouldMatch("100%"); + boolQueryMust.must(multiQueryBuilder); + boolQueryShould.should(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(numbershowSplit, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery(nameshowSplit, "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("ZQCBMShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("ZQCBM", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("stand_status", "*"+searchInfoEO.getSelectValue()+"*")) + + .should(QueryBuilders.wildcardQuery("numbershow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standEnName", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("content", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("nameshow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("replaceStandNum", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("replacedStandNum", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("QBMJShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("QBSQShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("XHQBMShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("SVPPSName", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("XGBMName", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("ZYQCRShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("ZRBMShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("ZQCBMName", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("QTQCRShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("FSRQString", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("FZRQString", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("XGLC", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("WFSPJSName", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("GFXYYWJ", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("XGBMShow", "*"+searchInfoEO.getSelectValue()+"*")) + .should(QueryBuilders.wildcardQuery("put_time", "*"+searchInfoEO.getSelectValue()+"*")); + break; + default: break; + } + } + + if(boolQueryShould!=null){ + boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + boolQueryBuilder.must(boolQueryShould); + }else { + boolQueryBuilder.must(boolQueryShould); + } searchRequestBuilder.setQuery(boolQueryBuilder); //在结果中检索 if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword()) && StringUtils.isNotBlank(searchInfoEO.getIsHigh())) { @@ -157,26 +220,34 @@ public class SearchCenterServiceImpl implements SearchCenterService { String fieldInfo = InitStandAttrSearchUtil.queryField; List fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - // 动态存储属性字段 ---1 + // 自动匹配动态属性字段 es 查询 for (String field : fieldInfoList) { - if(collectAttrMap.containsKey(field.toLowerCase())){ - System.out.println(collectAttrMap.get(field.toLowerCase())+"----------------------------"); - List fields = new ArrayList<>(); - Object json= new JSONTokener(collectAttrMap.get(field.toLowerCase()).toString()).nextValue(); - if(json instanceof org.json.JSONArray){ - fields = JSONObject.parseArray(collectAttrMap.get(field.toLowerCase()).toString(),String.class); - }else { - fields.add(collectAttrMap.get(field.toLowerCase()).toString()); - } - if(!fields.isEmpty()){ - for (String str : fields) { - boolQueryBuilderMust.must(QueryBuilders.fuzzyQuery(field, "*"+str+"*")); + // 关键字查询属性字段 + String keyWordField = field + ".keyword"; + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField, "*"+searchInfoEO.getSelectValue()+"*")); + }else { + if(collectAttrMap.containsKey(field)){ + List fields = new ArrayList<>(); + Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue(); + if(json instanceof org.json.JSONArray){ + fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class); + }else { + fields.add(collectAttrMap.get(field).toString()); + } + if(!fields.isEmpty()){ + for (String str : fields) { + boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+str+"*")); + } } } } } - - boolQueryBuilder.should(boolQueryBuilderMust); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) { + boolQueryBuilder.should(boolQueryBuilderMust); + }else { + boolQueryBuilder.must(boolQueryBuilderMust); + } return boolQueryBuilder; } @@ -184,71 +255,40 @@ public class SearchCenterServiceImpl implements SearchCenterService { public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ String nameshowStr = "nameshow"; // 高级搜索项,只针对标准 - if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { - // 如果等于All,相当于不限制,查询全部 - boolQueryBuilder.must(QueryBuilders.matchQuery("standType", searchInfoEO.getStandType())); - } - //标准类别,国内外标准有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getStandSort().equals("all") && !searchInfoEO.getStandSort().equals("[]")) { - String[] arrlist = searchInfoEO.getStandSort().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("standSort.keyword", arrlist)); - //boolQueryBuilder.must(QueryBuilders.matchQuery("stand_sort", searchInfoEO.getStandSort())); + if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){ + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", searchInfoEO.getStandSort())); } - } - //编号,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber", "*"+searchInfoEO.getStandNumber()+"*")); - } - //标准年份 - if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("standYear", searchInfoEO.getStandYear())); - } - //名称,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getNameShow()+"*")); - } - //标准英文名称 - if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("standEnName", searchInfoEO.getStandEnName())); - } - //标准状态,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]") ) { - String[] arrlist = searchInfoEO.getStandState().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("statecode.keyword", arrlist)); + if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*")); } - } - if (StringUtils.isNotBlank(searchInfoEO.getCLLX())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCLLX().equals("all") && !searchInfoEO.getCLLX().equals("[]") ) { - String[] arrlist = searchInfoEO.getCLLX().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("CLLX.keyword", arrlist)); + if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", searchInfoEO.getStandYear())); } - } - if (StringUtils.isNotBlank(searchInfoEO.getCYSD())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCYSD().equals("all") && !searchInfoEO.getCYSD().equals("[]") ) { - String[] arrlist = searchInfoEO.getCYSD().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("CYSD.keyword", arrlist)); + if (StringUtils.isNotBlank(searchInfoEO.getStandName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", searchInfoEO.getStandName())); } - } - if (StringUtils.isNotBlank(searchInfoEO.getCBCD())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCBCD().equals("all") && !searchInfoEO.getCBCD().equals("[]") ) { - String[] arrlist = searchInfoEO.getCBCD().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("CBCD.keyword", arrlist)); + + if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", searchInfoEO.getTextStatus())); } - } - if (StringUtils.isNotBlank(searchInfoEO.getZRLX())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getZRLX().equals("all") && !searchInfoEO.getZRLX().equals("[]") ) { - String[] arrlist = searchInfoEO.getZRLX().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("ZRLX.keyword", arrlist)); + + if (searchInfoEO.getIssueTime() != null) { + Long starttime = searchInfoEO.getIssueTime().getTime(); + Long endtime = searchInfoEO.getIssueTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + + if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", searchInfoEO.getIsRelateAccess())); + } + + if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", searchInfoEO.getStandSystem())); } } + querySeniorMsg(searchInfoEO,boolQueryBuilder); return boolQueryBuilder; }