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 1/3] 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 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 2/3] =?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 3/3] 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 {