From 8e7c6b19d37fdc3b1e5dce332a30f1ad23322294 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 8 Apr 2022 11:48:46 +0800 Subject: [PATCH 01/12] feat: There is no way the, rest es conf --- adc-da-main/src/main/resources/application-dev.properties | 2 +- adc-da-main/src/main/resources/application.properties | 2 +- adc-da-main/src/main/resources/logback-spring.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/adc-da-main/src/main/resources/application-dev.properties b/adc-da-main/src/main/resources/application-dev.properties index a4aa4373..1e3d58ff 100644 --- a/adc-da-main/src/main/resources/application-dev.properties +++ b/adc-da-main/src/main/resources/application-dev.properties @@ -11,7 +11,7 @@ spring.datasource.password = Fting&8g35g#geg2 #============================================== # 应用设置 -spring.application.name=FotonLAWSSystem +spring.application.name=FotonLAWSSystem-REST-SEARCH application.code=20200101 application.center=1 #============================================== diff --git a/adc-da-main/src/main/resources/application.properties b/adc-da-main/src/main/resources/application.properties index 7a7db19f..2bd567fb 100644 --- a/adc-da-main/src/main/resources/application.properties +++ b/adc-da-main/src/main/resources/application.properties @@ -9,7 +9,7 @@ spring.profiles.active=dev server.compression.enabled=true server.compression.mime-types=application/json,application/xml,text/html,text/plain,text/css,application/x-javascript # 端口号设置 -server.port=4202 +server.port=10086 #主服务session超时 server.servlet.session.timeout =600 diff --git a/adc-da-main/src/main/resources/logback-spring.xml b/adc-da-main/src/main/resources/logback-spring.xml index 39f90eab..841d37a2 100644 --- a/adc-da-main/src/main/resources/logback-spring.xml +++ b/adc-da-main/src/main/resources/logback-spring.xml @@ -8,7 +8,7 @@ - + From d7bdf83678cce512bef38c5363899b80b65e171e Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 8 Apr 2022 15:20:07 +0800 Subject: [PATCH 02/12] feat: There is no way the, rest es conf --- .../search/service/ElasticsearchService.java | 5 ++ .../impl/ElasticsearchServiceImpl.java | 55 +++++++++++++++++++ .../server/ResetSearchCenterService.java | 12 ++-- 3 files changed, 65 insertions(+), 7 deletions(-) diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java b/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java index baedb9e1..41563bb6 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/ElasticsearchService.java @@ -118,6 +118,11 @@ public interface ElasticsearchService { */ Map searchDataById(String index, String type, String id, String fields); + /** + * 使用索引查询所有 + */ + + List> searchAll(String index); /** * 使用分词查询 diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java index 0b86db69..76f1f3c5 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/ElasticsearchServiceImpl.java @@ -8,6 +8,7 @@ import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse; +import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequestBuilder; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; @@ -24,11 +25,16 @@ import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.transport.TransportClient; +import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.text.Text; +import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.search.Scroll; import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.BucketOrder; import org.elasticsearch.search.aggregations.bucket.range.Range; @@ -36,6 +42,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.metrics.Avg; import org.elasticsearch.search.aggregations.metrics.Max; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.sort.FieldSortBuilder; import org.elasticsearch.search.sort.SortOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -273,6 +280,54 @@ public class ElasticsearchServiceImpl implements ElasticsearchService { return getResponse.getSource(); } + /** + * 使用索引查询所有 + */ + @Override + public List> searchAll(String index) { + List> sourceList = new ArrayList>(); + + //1、指定es集群 cluster.name 是固定的key值,my-application是ES集群的名称 +// Settings settings = Settings.builder().put("cluster.name", "my-application").build(); + QueryBuilder qBuilder = QueryBuilders.matchAllQuery(); + SearchResponse sResponse = client.prepareSearch(index) + .setQuery(qBuilder).setTrackTotalHits(true) + .get(); + SearchHits hits = sResponse.getHits(); + if(hits.getTotalHits().value > 0){ + SearchResponse scrollResp = search(index,qBuilder, 1,(int) hits.getTotalHits().value); + for (SearchHit hit : scrollResp.getHits().getHits()) { + sourceList.add(hit.getSourceAsMap()); + } + } + return sourceList; + } + + + public SearchResponse search(String index, QueryBuilder query,int page, int size) { + + updateIndex(index, page,size); + + SearchResponse searchResponse = client.prepareSearch(index) + .setScroll(new TimeValue(360000)) + .setQuery(query).setTrackTotalHits(true).setSize(size) + .get(); + return searchResponse; + } + + //更新索引的max_result_window参数 + private boolean updateIndex(String indices, int from,int size) { + int records = from * size + size; + if (records <= 10000) return true; + AcknowledgedResponse indexResponse = client.admin().indices() + .prepareUpdateSettings(indices) + .setSettings(Settings.builder() + .put("index.max_result_window", records) + .build() + ).get(); + return indexResponse.isAcknowledged(); + } + /** * 使用分词查询 diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java index 2c26cdc9..5c91de56 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java @@ -100,12 +100,10 @@ public class ResetSearchCenterService { Boolean getStandIndex = elasticsearchService.isIndexExist("stand"); - List> searchListData = elasticsearchService.searchListData("stand","","",""); + List> searchListData = elasticsearchService.searchAll("stand"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); - logger.info(searchListData.toString()); - logger.info(esIdList.toString()); page.setValidFlag("0"); if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){ String[] result = searchCenter.getIdList().toArray(new String[0]); @@ -170,15 +168,15 @@ public class ResetSearchCenterService { elasticsearchService.deleteBatchId(delList,"stand"); elasticsearchService.deleteBatchId(delList,"fulltextserch"); } - logger.info("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+rowsStand.size()+"条)删除-共"+delList.size()+"条数据"); - return Result.success("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+rowsStand.size()+"条)删除-共"+delList.size()+"条数据"); + logger.info("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据"); + return Result.success("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据"); } @Async public ResponseMessage resetLawsSearchCenter(SarLawsStandInfoPage sarLawsInfoEOPage,SearchCenter searchCenter) throws Exception{ Boolean getLawsIndex = elasticsearchService.isIndexExist("laws"); - List> searchListData = elasticsearchService.searchListData("laws","","",""); + List> searchListData = elasticsearchService.searchAll("laws"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); @@ -262,7 +260,7 @@ public class ResetSearchCenterService { public ResponseMessage resetBussStandSearchCenter(SarBussionessStandEOPage sarBussionessStandEOPage,SearchCenter searchCenter) throws Exception{ Boolean getbussstandIndex = elasticsearchService.isIndexExist("bussstand"); - List> searchListData = elasticsearchService.searchListData("bussstand","","",""); + List> searchListData = elasticsearchService.searchAll("bussstand"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); From 178c30336e81680ae097ad2d847f6a120ef16838 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 8 Apr 2022 15:26:37 +0800 Subject: [PATCH 03/12] feat: There is no way the, rest es conf --- adc-da-main/src/main/resources/logback-spring.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adc-da-main/src/main/resources/logback-spring.xml b/adc-da-main/src/main/resources/logback-spring.xml index 841d37a2..b1319cf0 100644 --- a/adc-da-main/src/main/resources/logback-spring.xml +++ b/adc-da-main/src/main/resources/logback-spring.xml @@ -8,7 +8,7 @@ - + From 003ef482791b8715bff2841da3aeb1bc5a9e404a Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 8 Apr 2022 15:47:34 +0800 Subject: [PATCH 04/12] feat: There is no way the, rest es conf --- .../search/server/ResetSearchCenterService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java index 5c91de56..eb408bc7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java @@ -100,6 +100,11 @@ public class ResetSearchCenterService { Boolean getStandIndex = elasticsearchService.isIndexExist("stand"); + if(!getStandIndex){ + logger.info("ES 不存在索引:stand"); + return Result.error("ES 不存在索引:stand"); + } + List> searchListData = elasticsearchService.searchAll("stand"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); @@ -176,6 +181,11 @@ public class ResetSearchCenterService { public ResponseMessage resetLawsSearchCenter(SarLawsStandInfoPage sarLawsInfoEOPage,SearchCenter searchCenter) throws Exception{ Boolean getLawsIndex = elasticsearchService.isIndexExist("laws"); + if(!getLawsIndex){ + logger.info("ES 不存在索引:laws"); + return Result.error("ES 不存在索引:laws"); + } + List> searchListData = elasticsearchService.searchAll("laws"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); @@ -260,6 +270,11 @@ public class ResetSearchCenterService { public ResponseMessage resetBussStandSearchCenter(SarBussionessStandEOPage sarBussionessStandEOPage,SearchCenter searchCenter) throws Exception{ Boolean getbussstandIndex = elasticsearchService.isIndexExist("bussstand"); + if(!getbussstandIndex){ + logger.info("ES 不存在索引:bussstand"); + return Result.error("ES 不存在索引:bussstand"); + } + List> searchListData = elasticsearchService.searchAll("bussstand"); List esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList()); From 1fd0861d648d48ee98e650df2a3d4538ac1ed061 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 27 Apr 2022 20:21:01 +0800 Subject: [PATCH 05/12] feat: There is no way the, rest es conf --- .../server/ResetSearchCenterService.java | 44 ++++++++++++ .../adc/da/search/sync/restSearchSync.java | 71 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/search/sync/restSearchSync.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java index eb408bc7..aaacb4cb 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java @@ -18,6 +18,7 @@ import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.Result; import com.adc.da.utils.util.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.gson.JsonObject; import org.apache.commons.lang3.StringUtils; import org.elasticsearch.client.transport.TransportClient; @@ -91,6 +92,49 @@ public class ResetSearchCenterService { return Result.success(res); } + @Async + public ResponseMessage syncResetALLSearchCenter(SearchCenter searchCenter) throws Exception{ + Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch"); + SearchCenter standSearch = new SearchCenter(); + QueryWrapper qw = new QueryWrapper(); + qw.eq("VALID_FLAG","0"); + int count = iSarStandardsInfoService.count(qw); + standSearch.setExecType(searchCenter.getExecType()); + standSearch.setCountStand(count); + ResponseMessage stand = resetStandSearchCenter(new SarStandardsInfoEOPage(),standSearch); + List r = new ArrayList<>(); + if(stand.isOk() && StringUtils.isNotBlank(stand.getData().toString())){ + r.add(stand.getData().toString()); + } + + SearchCenter lawsSearch = new SearchCenter(); + QueryWrapper qw2 = new QueryWrapper(); + qw2.eq("VALID_FLAG","0"); + int count2 = iSarLawsStandInfoService.count(qw2); + lawsSearch.setExecType(searchCenter.getExecType()); + lawsSearch.setCountStand(count2); + ResponseMessage laws = resetLawsSearchCenter(new SarLawsStandInfoPage(),lawsSearch); + if(laws.isOk() && StringUtils.isNotBlank(laws.getData().toString())){ + r.add(laws.getData().toString()); + } + + SearchCenter bussSearch = new SearchCenter(); + QueryWrapper qw3 = new QueryWrapper(); + qw3.eq("VALID_FLAG","0"); + int count3 = iSarBussionessStandService.count(qw3); + bussSearch.setExecType(searchCenter.getExecType()); + bussSearch.setCountStand(count3); + ResponseMessage buss = resetBussStandSearchCenter(new SarBussionessStandEOPage(),bussSearch); + if(buss.isOk() && StringUtils.isNotBlank(buss.getData().toString())){ + r.add(buss.getData().toString()); + } + + String res = String.join(", ", r); + logger.info(res); + + return Result.success(res); + } + //重建国内外标准 @Async public ResponseMessage resetStandSearchCenter(SarStandardsInfoEOPage page,SearchCenter searchCenter) throws Exception{ diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/sync/restSearchSync.java b/adc-da-slrs/src/main/java/com/adc/da/search/sync/restSearchSync.java new file mode 100644 index 00000000..beeef499 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/search/sync/restSearchSync.java @@ -0,0 +1,71 @@ +package com.adc.da.search.sync; + +import com.adc.da.search.bean.SearchCenter; +import com.adc.da.search.server.ResetSearchCenterService; +import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarBussionessStandState.entity.SarBussionessStandState; +import com.adc.da.slrs.sarBussionessStandState.service.ISarBussionessStandStateService; +import com.adc.da.utils.util.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2022年01月25日 3:34 + */ +@EnableScheduling +@Component +@Slf4j +public class restSearchSync { + Logger logger = LoggerFactory.getLogger(restSearchSync.class); + + @Autowired + private ResetSearchCenterService resetSearchCenterService; + + /** + * 根据配置文件设置是否开启定时器 + */ + + @Value("${isNotScheduled}") + private boolean isNotScheduled; //是否开启定时器 + + + // 每天0点1分执行 重置ES 自动更新、新增、删除 +// @Scheduled(cron="0 0 1 1 * ?") + @Scheduled(cron = "0 1 0 * * ?") + @Async + public void StandScheduledJobMonthBegin(){ + if(isNotScheduled){ + try{ + Thread.sleep(2000); + logger.info("每天0点1分执行 重置ES 自动更新、新增、删除:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---START-01"); + + SearchCenter searchCenter = new SearchCenter(); + // ALL 执行全部 + searchCenter.setExecType("ALL"); + resetSearchCenterService.syncResetALLSearchCenter(searchCenter); + + logger.info("每天0点1分执行 重置ES 自动更新、新增、删除:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01"); + }catch(Exception e){ + logger.info(e.getMessage()); + } + } + } + +} From 071937277bb10601358f45c65ac18ce3474ba565 Mon Sep 17 00:00:00 2001 From: 2510220824 <2510220824@qq.com> Date: Thu, 28 Apr 2022 15:45:41 +0800 Subject: [PATCH 06/12] =?UTF-8?q?update:awc=E5=AF=B9=E6=8E=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../regulations/controller/StandDataController.java | 13 +++++++------ .../regulations/entity/SearchStandByVppsReqDTO.java | 13 +++++++++++++ .../slrs/regulations/entity/SearchStandContext.java | 2 +- .../service/impl/StandDataServiceImpl.java | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandByVppsReqDTO.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java index f8a64cb0..d660ee8d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/controller/StandDataController.java @@ -9,6 +9,7 @@ import com.adc.da.http.PageInfo; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.slrs.regulations.entity.SearchStandByVppsReqDTO; import com.adc.da.slrs.regulations.entity.SearchStandContext; import com.adc.da.slrs.regulations.entity.SearchStandResult; import com.adc.da.slrs.regulations.entity.StandMessageCodeEnum; @@ -71,16 +72,16 @@ public class StandDataController { */ @ApiOperation(value = "|regulations|标准查询列表接口") @PostMapping("/searchStandData") - public String searchStandData(@RequestBody SearchStandContext searchStandContext){ + public String searchStandData(@RequestBody SearchStandByVppsReqDTO searchStandContext){ String resultJson = ""; - if(StringUtils.isEmpty(searchStandContext.getUid()) - || StringUtils.isEmpty(searchStandContext.getUsername()) - || StringUtils.isEmpty(searchStandContext.getVppsCode())){ - return StandResult.toJson(StandResult.error(verifyObj(searchStandContext.getUid()), + if(StringUtils.isEmpty(searchStandContext.getData().getUid()) + || StringUtils.isEmpty(searchStandContext.getData().getUserName()) + || StringUtils.isEmpty(searchStandContext.getData().getVppsCode())){ + return StandResult.toJson(StandResult.error(verifyObj(searchStandContext.getData().getUid()), StandMessageCodeEnum.SOURCE.getCode(), StandMessageCodeEnum.ERROR_PARAM.getCode(), "uid/username/vppsCode 为必填项")); } - return iStandDataService.searchStandData(searchStandContext); + return iStandDataService.searchStandData(searchStandContext.getData()); } private String verifyObj(String str){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandByVppsReqDTO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandByVppsReqDTO.java new file mode 100644 index 00000000..00712a12 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandByVppsReqDTO.java @@ -0,0 +1,13 @@ +package com.adc.da.slrs.regulations.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class SearchStandByVppsReqDTO implements Serializable { + + public SearchStandContext Data; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java index 32df4b99..d0d0d0cd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/entity/SearchStandContext.java @@ -20,7 +20,7 @@ public class SearchStandContext implements Serializable { private String uid; @ApiModelProperty(value = "用户ID") - private String username; + private String userName; @ApiModelProperty(value = "VPPS码") private String vppsCode; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java index aa7e520a..a07b2742 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/regulations/service/impl/StandDataServiceImpl.java @@ -42,7 +42,7 @@ public class StandDataServiceImpl extends ServiceImpl i standDataQuery.stream().peek(standData -> { FileResult fileResult = new FileResult(); fileResult.setDocumentName(verifyObj(standData.getStandSort(),standData.getStandNumber(),standData.getStandName())); - fileResult.setDocumentUrl(webUrl+"?userName="+encode(searchStandContext.getUsername())+"&dataId="+standData.getStandId()+"&datatype="+standData.getStandType()); + fileResult.setDocumentUrl(webUrl+"?userName="+encode(searchStandContext.getUserName())+"&dataId="+standData.getStandId()+"&datatype="+standData.getStandType()); fileResultList.add(fileResult); }).collect(Collectors.toList()); } From 2bc71ee31ca4b1a3dbb804a4fe907b2b80fac541 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 28 Apr 2022 19:07:48 +0800 Subject: [PATCH 07/12] feat: There is no way the, xxx --- .../service/impl/SearchCenterServiceImpl.java | 51 +++++++++++++++---- .../entity/SarLawsStandInfoPage.java | 3 ++ .../entity/SarBussionessStandEOPage.java | 11 ++++ .../entity/SarStandardsInfoEOPage.java | 3 ++ .../SarBussionessStandMapper.xml | 4 ++ .../SarLawsStandInfoMapper.xml | 3 ++ .../SarStandardsInfoMapper.xml | 3 ++ 7 files changed, 67 insertions(+), 11 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 00e66ce5..b7a56d17 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 @@ -30,6 +30,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightField; +import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.json.JSONTokener; import org.slf4j.LoggerFactory; @@ -1295,7 +1296,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { String value = ""; String select = ""; if (-1 != num) { - value = searchInfoEO.getSelectValue().substring(0, num).trim(); + value = searchInfoEO.getSelectValue().substring(0, num).trim().toUpperCase(); select = searchInfoEO.getSelectValue().substring(num + 1).trim(); real = value + " " + select; }else{ @@ -1306,10 +1307,20 @@ public class SearchCenterServiceImpl implements SearchCenterService { String[] valArr = value.split("\\/"); if (valArr.length > 2) { value = valArr[0] + "/" + valArr[1]; - select = content.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replaceAll(value,""); + select = content.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } }else{ value = valArr[0]; - select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replaceAll(value,""); + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } } real = value + " " + select; }else if(real.matches(reg)){ @@ -1326,13 +1337,23 @@ public class SearchCenterServiceImpl implements SearchCenterService { select = sel; } }else{ - value = valArr[0]; - select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replaceAll(value,""); + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } } real = value + " " + select; }else { value = real; select = ""; + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } } } searchInfoEO.setSelectValue(select); @@ -1380,13 +1401,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { if (null != value && selects == null) { boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "title" - ).minimumShouldMatch("100%").field("title",1000f)); + ).minimumShouldMatch("100%")); boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "textContent" - ).minimumShouldMatch("100%").field("title",1000f)); + ).minimumShouldMatch("100%")); boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "textItems" - ).minimumShouldMatch("100%").field("title",1000f)); + ).minimumShouldMatch("100%")); boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+value+"*")); // multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*", // "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f); @@ -1396,8 +1417,8 @@ public class SearchCenterServiceImpl implements SearchCenterService { // searchInfoEO.setSelectValue(searchInfoEO.getSelectValue().replace("-","\\-")); if (null != selects) { boolSelectValue - .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*").boost(1000f)) - .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*").boost(0.0000000000000000000000000000000001f)) + .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*")) + .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*")) .should(QueryBuilders.wildcardQuery("issue_time", "*" + real + "*")); // for (String se : selects) { // if (StringUtils.isNotBlank(se)) { @@ -1447,13 +1468,14 @@ public class SearchCenterServiceImpl implements SearchCenterService { updateIndex("fulltextserch",99999999,2); searchRequestBuilder = client.prepareSearch("fulltextserch") + .addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC)) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .highlighter(hiBuilder) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .setSize(searchInfoEO.getPageSize()); searchRequestBuilder.setQuery(boolQueryShould).setTrackTotalHits(true); - + searchRequestBuilder.addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC)); // 获取查询到的结果 SearchResponse response = searchRequestBuilder.get(); for (SearchHit searchHit : response.getHits().getHits()) { @@ -1486,6 +1508,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { result.add(sourceAsMap); } searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits().value); +// result.sort((o1, o2) -> { +// if (o1.get("issue_time") != null && o2.get("issue_time") != null) { +// return o2.get("issue_time").toString().compareTo(o1.get("issue_time").toString()); +// } else { +// return o1.get("issue_time") == null ? 1 : -1; +// } +// }); return result; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java index 0753b998..c995ecd7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java @@ -279,4 +279,7 @@ public class SarLawsStandInfoPage extends BasePage { @TableField(exist = false) private String exportAllResult; + @TableField(exist = false) + private String syncParam; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarBussionessStandEOPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarBussionessStandEOPage.java index 66498889..371858e1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarBussionessStandEOPage.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarBussionessStandEOPage.java @@ -1,6 +1,7 @@ package com.adc.da.slrs.sarStandardsInfo.entity; import com.adc.da.sys.common.BasePage; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.util.List; @@ -173,6 +174,16 @@ public class SarBussionessStandEOPage extends BasePage { private String exportAllAttrInfo; private String exportAllResult; + private String syncParam; + + public String getSyncParam() { + return syncParam; + } + + public void setSyncParam(String syncParam) { + this.syncParam = syncParam; + } + public String getExportAllResult() { return exportAllResult; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfoEOPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfoEOPage.java index 06d58413..02438782 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfoEOPage.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfoEOPage.java @@ -91,6 +91,9 @@ public class SarStandardsInfoEOPage extends BasePage { private String orderBy1 = "SAR_STANDARDS_INFO.issue_time"; private String order1 = ""; + // syncParam == sync + private String syncParam; + /** * zhaokaiyao * 文本状态 diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml index 7f87fdb3..8db7553e 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarBussionessStand/SarBussionessStandMapper.xml @@ -489,6 +489,10 @@ and text_status_buss=#{textStatusBuss} + + and SAR_BUSSIONESS_STAND.MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day) + + + + and SAR_LAWS_STAND_INFO.MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day) + and SAR_LAWS_STAND_INFO.LAWS_TYPE like concat(concat('%',#{lawsType}),'%') diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml index 1e14f116..1f8be4eb 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml @@ -979,6 +979,9 @@ and stand_type = #{page.standType} + + and MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day) + From 27a04f7c1b0d53d64a22d56f70f8fc4ed373735b Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 28 Apr 2022 19:37:58 +0800 Subject: [PATCH 08/12] feat: There is no way the, xxxx --- .../search/service/impl/SearchCenterServiceImpl.java | 10 +++++----- .../mapper/sarStandardsInfo/SarStandardsInfoMapper.xml | 2 +- 2 files changed, 6 insertions(+), 6 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 b7a56d17..221c1615 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 @@ -1401,13 +1401,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { if (null != value && selects == null) { boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "title" - ).minimumShouldMatch("100%")); + ).minimumShouldMatch("100%").field("title",1000f)); boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "textContent" - ).minimumShouldMatch("100%")); + ).minimumShouldMatch("100%").field("title",1000f)); boolSelectValue.should(QueryBuilders.multiMatchQuery(value, "textItems" - ).minimumShouldMatch("100%")); + ).minimumShouldMatch("100%").field("title",1000f)); boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+value+"*")); // multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*", // "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f); @@ -1417,8 +1417,8 @@ public class SearchCenterServiceImpl implements SearchCenterService { // searchInfoEO.setSelectValue(searchInfoEO.getSelectValue().replace("-","\\-")); if (null != selects) { boolSelectValue - .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*")) - .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*")) + .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real + "*").boost(1000f)) + .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real + "*").boost(0.0000000000000000000000000000000001f)) .should(QueryBuilders.wildcardQuery("issue_time", "*" + real + "*")); // for (String se : selects) { // if (StringUtils.isNotBlank(se)) { diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml index 1f8be4eb..3c390666 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml @@ -980,7 +980,7 @@ and stand_type = #{page.standType} - and MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day) + and SAR_STANDARDS_INFO.MODIFY_TIME between DATE_SUB(NOW(),INTERVAL 7 day) and DATE_SUB(NOW(),INTERVAL -1 day) From 875e8670fe1cec08c4de729739ef8dcc7df001e6 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 28 Apr 2022 19:38:37 +0800 Subject: [PATCH 09/12] feat: There is no way the, rest es conf --- .../da/search/server/ResetSearchCenterService.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java index aaacb4cb..2f76d925 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/server/ResetSearchCenterService.java @@ -101,7 +101,9 @@ public class ResetSearchCenterService { int count = iSarStandardsInfoService.count(qw); standSearch.setExecType(searchCenter.getExecType()); standSearch.setCountStand(count); - ResponseMessage stand = resetStandSearchCenter(new SarStandardsInfoEOPage(),standSearch); + SarStandardsInfoEOPage page = new SarStandardsInfoEOPage(); + page.setSyncParam("sync"); + ResponseMessage stand = resetStandSearchCenter(page,standSearch); List r = new ArrayList<>(); if(stand.isOk() && StringUtils.isNotBlank(stand.getData().toString())){ r.add(stand.getData().toString()); @@ -113,7 +115,9 @@ public class ResetSearchCenterService { int count2 = iSarLawsStandInfoService.count(qw2); lawsSearch.setExecType(searchCenter.getExecType()); lawsSearch.setCountStand(count2); - ResponseMessage laws = resetLawsSearchCenter(new SarLawsStandInfoPage(),lawsSearch); + SarLawsStandInfoPage lawsPage = new SarLawsStandInfoPage(); + page.setSyncParam("sync"); + ResponseMessage laws = resetLawsSearchCenter(lawsPage,lawsSearch); if(laws.isOk() && StringUtils.isNotBlank(laws.getData().toString())){ r.add(laws.getData().toString()); } @@ -124,7 +128,9 @@ public class ResetSearchCenterService { int count3 = iSarBussionessStandService.count(qw3); bussSearch.setExecType(searchCenter.getExecType()); bussSearch.setCountStand(count3); - ResponseMessage buss = resetBussStandSearchCenter(new SarBussionessStandEOPage(),bussSearch); + SarBussionessStandEOPage bussPage = new SarBussionessStandEOPage(); + page.setSyncParam("sync"); + ResponseMessage buss = resetBussStandSearchCenter(bussPage,bussSearch); if(buss.isOk() && StringUtils.isNotBlank(buss.getData().toString())){ r.add(buss.getData().toString()); } From a50b18728df682730be0bea0eb342bece014e2bc Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 28 Apr 2022 21:24:03 +0800 Subject: [PATCH 10/12] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96ES=20=E6=9D=83=E9=87=8D=20=E5=85=A8=E6=96=87?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SearchCenterServiceImpl.java | 53 +++++++++++++------ .../mybatis/mapper/sys/DicTypeEOMapper.xml | 1 + 2 files changed, 37 insertions(+), 17 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 221c1615..d1d3f01d 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 @@ -4,6 +4,8 @@ import com.adc.da.search.entity.*; import com.adc.da.search.service.SearchCenterService; import com.adc.da.search.util.DateUtil; import com.adc.da.search.util.InitStandAttrSearchUtil; +import com.adc.da.sys.dao.DicTypeEODao; +import com.adc.da.sys.entity.DicTypeEO; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -30,7 +32,6 @@ import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightField; -import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.json.JSONTokener; import org.slf4j.LoggerFactory; @@ -57,6 +58,9 @@ public class SearchCenterServiceImpl implements SearchCenterService { private TransportClient client; + @Autowired + private DicTypeEODao dicTypeEODao; + @PostConstruct public void init() { client = this.transportClient; @@ -1293,12 +1297,22 @@ public class SearchCenterServiceImpl implements SearchCenterService { String real = searchInfoEO.getSelectValue(); boolean isReal = false; int num = searchInfoEO.getSelectValue().indexOf(" "); + //查询字典表,形成Hash映射提升速度 + List dicInfo = dicTypeEODao.getDicInfo("dic_id","dic_type_code", "dic_type_name"); + Map dicMap = dicInfo.stream() + .filter(item-> ("JKSADFH564S".equals(item.getDicId()) || "NGETEMDJDI".equals(item.getDicId()) || "sg9gb7liywkrnv3pa5uh".equals(item.getDicId())) && !item.getDicTypeCode().isEmpty()) + .collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getDicTypeName,(value1, value2 )->value2)); String value = ""; String select = ""; if (-1 != num) { value = searchInfoEO.getSelectValue().substring(0, num).trim().toUpperCase(); - select = searchInfoEO.getSelectValue().substring(num + 1).trim(); - real = value + " " + select; + if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ + select = searchInfoEO.getSelectValue().substring(num + 1).trim(); + real = value + " " + select; + }else { + select = null; + value = real; + } }else{ String reg = ".*[0-9].*"; if("-".contains(real)){ @@ -1322,7 +1336,12 @@ public class SearchCenterServiceImpl implements SearchCenterService { value = value.toUpperCase(); } } - real = value + " " + select; + if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ + real = value + " " + select; + }else { + select = null; + value = real; + } }else if(real.matches(reg)){ value = real.replaceAll("[^(A-Za-z\\/)]", ""); String[] valArr = value.split("\\/"); @@ -1345,7 +1364,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { value = value.toUpperCase(); } } - real = value + " " + select; + System.out.println(dicMap.get(value)); + if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ + real = value + " " + select; + }else { + select = null; + value = real; + } }else { value = real; select = ""; @@ -1399,16 +1424,10 @@ public class SearchCenterServiceImpl implements SearchCenterService { if(null != value || null != selects){ if (null != value && selects == null) { - boolSelectValue.should(QueryBuilders.multiMatchQuery(value, - "title" - ).minimumShouldMatch("100%").field("title",1000f)); - boolSelectValue.should(QueryBuilders.multiMatchQuery(value, - "textContent" - ).minimumShouldMatch("100%").field("title",1000f)); - boolSelectValue.should(QueryBuilders.multiMatchQuery(value, - "textItems" - ).minimumShouldMatch("100%").field("title",1000f)); - boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+value+"*")); + boolSelectValue + .should(QueryBuilders.wildcardQuery("title.keyword", "*" + value + "*").boost(1000f)) + .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + value + "*").boost(0.0000000000000000000000000000000001f)) + .should(QueryBuilders.wildcardQuery("issue_time", "*" + value + "*")); // multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*", // "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f); //// boolQueryMust.must(multiQueryBuilder); @@ -1468,14 +1487,13 @@ public class SearchCenterServiceImpl implements SearchCenterService { updateIndex("fulltextserch",99999999,2); searchRequestBuilder = client.prepareSearch("fulltextserch") - .addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC)) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .highlighter(hiBuilder) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .setSize(searchInfoEO.getPageSize()); searchRequestBuilder.setQuery(boolQueryShould).setTrackTotalHits(true); - searchRequestBuilder.addSort(SortBuilders.fieldSort("issue_time").unmappedType("String").order(SortOrder.DESC)); + // 获取查询到的结果 SearchResponse response = searchRequestBuilder.get(); for (SearchHit searchHit : response.getHits().getHits()) { @@ -1508,6 +1526,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { result.add(sourceAsMap); } searchInfoEO.getPager().setRowCount((int) response.getHits().getTotalHits().value); + //给aqi升序排,null放到最后 // result.sort((o1, o2) -> { // if (o1.get("issue_time") != null && o2.get("issue_time") != null) { // return o2.get("issue_time").toString().compareTo(o1.get("issue_time").toString()); diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml index 61e3a9b7..2bcc302c 100644 --- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml +++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/DicTypeEOMapper.xml @@ -609,6 +609,7 @@ ${item} is not NULL + and TS_DICTYPE.VALID_FLAG= '0' From c616b2fa8a757b51c5ccb895959df713f9897c6e Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 29 Apr 2022 08:11:48 +0800 Subject: [PATCH 11/12] feat: There is no way the, d --- .../com/adc/da/search/service/impl/SearchCenterServiceImpl.java | 1 - 1 file changed, 1 deletion(-) 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 d1d3f01d..c4069ccf 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 @@ -1364,7 +1364,6 @@ public class SearchCenterServiceImpl implements SearchCenterService { value = value.toUpperCase(); } } - System.out.println(dicMap.get(value)); if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ real = value + " " + select; }else { From 8392eecffc2b510078223eea76f6e191e041edef Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 29 Apr 2022 12:30:40 +0800 Subject: [PATCH 12/12] feat: There is no way the, rest es conf --- .../service/impl/StandLawsSearchServiceImpl.java | 13 +++++++++++-- .../java/com/adc/da/search/bean/SearchCenter.java | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java index 3b0c5147..5cf509fd 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -225,6 +225,7 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" "); StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); fullTextSearchEO.put("textContent",textContent.toString()); + fullTextSearchEO.put("yearOrder", String.valueOf(attrInfoMap.get("standYear"))); // 全文检索 加入 发布稿 分解单条款内容逻辑 StringBuilder itemBuilder = new StringBuilder(); @@ -237,8 +238,10 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) { fullTextSearchEO.put("issue_time", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime")))); + fullTextSearchEO.put("issue_time_order", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime"))).replace("-","")); }else { fullTextSearchEO.put("issue_time", "--"); + fullTextSearchEO.put("issue_time_order", "--"); } } else if("laws".equals(attrInfoMap.get("type"))){ // 政策全文 @@ -247,7 +250,7 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { attrInfoMap.put(key, "null"); } } - fullTextSearchEO.put("title",attrInfoMap.get("lawsNumber")+" "+attrInfoMap.get("lawsNumber")); + fullTextSearchEO.put("title",attrInfoMap.get("lawsTypeName")+" "+attrInfoMap.get("lawsNumber")+" "+attrInfoMap.get("lawsName")); StringBuilder contentBuilder = new StringBuilder(); contentBuilder.append("政策分类: ").append(attrInfoMap.get("lawsTypeName")).append(" "); contentBuilder.append("政策编号: ").append(attrInfoMap.get("lawsNumber")).append(" "); @@ -296,11 +299,14 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" "); StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); fullTextSearchEO.put("textContent",textContent.toString()); + fullTextSearchEO.put("yearOrder", String.valueOf(attrInfoMap.get("lawsYearName"))); if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) { fullTextSearchEO.put("issue_time", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime")))); + fullTextSearchEO.put("issue_time_order", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime"))).replace("-","")); }else { fullTextSearchEO.put("issue_time", "--"); + fullTextSearchEO.put("issue_time_order", "--"); } }else if ("bussstand".equals(attrInfoMap.get("type"))){ @@ -309,7 +315,7 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { attrInfoMap.put(key, "null"); } } - fullTextSearchEO.put("title",attrInfoMap.get("stand_code")); + fullTextSearchEO.put("title",attrInfoMap.get("stand_code")+" "+attrInfoMap.get("stand_name")); StringBuilder contentBuilder = new StringBuilder(); contentBuilder.append("企标类别:").append(attrInfoMap.get("standSort")).append(" "); contentBuilder.append("标准年份:").append(attrInfoMap.get("standYear")).append(" "); @@ -348,10 +354,13 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); fullTextSearchEO.put("textContent",textContent.toString()); + fullTextSearchEO.put("yearOrder", String.valueOf(attrInfoMap.get("standYear"))); if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) { fullTextSearchEO.put("issue_time", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime")))); + fullTextSearchEO.put("issue_time_order", dateFormatToStr(String.valueOf(attrInfoMap.get("issueTime"))).replace("-","")); }else { fullTextSearchEO.put("issue_time", "--"); + fullTextSearchEO.put("issue_time_order", "--"); } } return fullTextSearchEO; diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/bean/SearchCenter.java b/adc-da-slrs/src/main/java/com/adc/da/search/bean/SearchCenter.java index faa17716..7becaa3e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/bean/SearchCenter.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/bean/SearchCenter.java @@ -20,7 +20,7 @@ public class SearchCenter { private Integer countStand; @NotNull - @ApiModelProperty(value = "执行参数 ALL 存在更新 不存在新增 ,UPD 只 更新存在 es 里的标准 ,ADD 只新增不存在 es 的标准") + @ApiModelProperty(value = "执行参数 ALL 存在更新 不存在新增 ,UPD 只 更新存在 es 里的标准 ,ADD 只新增不存在 es 的标准, DEL 只删除不存在标准库的数据") private String execType; @NotNull