From 1c2100b80cc2482307b19ef3b3f7c9f28791a285 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Fri, 29 Apr 2022 22:10:46 +0800 Subject: [PATCH] =?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=20=E5=B7=B2=E4=BF=AE=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=97=AE=E9=A2=98=20=E5=BE=85=E7=A1=AE=E8=AE=A4=20?= =?UTF-8?q?=E6=9D=83=E9=87=8D=E5=AD=97=E6=AE=B5=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SearchCenterServiceImpl.java | 123 +++++++++++------- 1 file changed, 73 insertions(+), 50 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 c4069ccf..975e7ab9 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 @@ -1306,7 +1306,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { String select = ""; if (-1 != num) { value = searchInfoEO.getSelectValue().substring(0, num).trim().toUpperCase(); - if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))){ select = searchInfoEO.getSelectValue().substring(num + 1).trim(); real = value + " " + select; }else { @@ -1315,60 +1315,83 @@ public class SearchCenterServiceImpl implements SearchCenterService { } }else{ String reg = ".*[0-9].*"; - if("-".contains(real)){ + if(real.contains("-")){ String content = real.split("-")[0]; value = content.replaceAll("[^(A-Za-z\\/)]", ""); - String[] valArr = value.split("\\/"); - if (valArr.length > 2) { - value = valArr[0] + "/" + valArr[1]; - 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(); + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))) { + String[] valArr = value.split("\\/"); + if (valArr.length > 2) { + value = valArr[0] + "/" + valArr[1]; + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))) { + select = content.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + }else { + select = content.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", ""); + } + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } + }else{ + value = valArr[0]; + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))) { + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + }else { + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", ""); + } + // 如果类别小写 转 大写 + 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\\/\\-\\:)]", "").replace(value,""); - // 如果类别小写 转 大写 - Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); - if (pattern.matcher(value).matches()) { - value = value.toUpperCase(); + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))){ + real = value + " " + select; + }else { + select = real; + value = null; } - } - if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ - real = value + " " + select; }else { - select = null; - value = real; + select = real; + value = null; } }else if(real.matches(reg)){ value = real.replaceAll("[^(A-Za-z\\/)]", ""); - String[] valArr = value.split("\\/"); - if (valArr.length > 2) { - value = valArr[0] + "/" + valArr[1]; - String[] str = real.split(value); - String sel = str[1].replaceAll("[^(0-9\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", ""); - String[] valArr2 = sel.split("\\/"); - if(valArr2.length > 2){ - select = valArr2[0] + '/' + valArr[3] + valArr2[1]; - }else { - select = sel; - } - }else{ - select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + System.out.println(dicMap.containsKey(value.toUpperCase())); + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))) { + String[] valArr = value.split("\\/"); + if (valArr.length > 2) { + value = valArr[0] + "/" + valArr[1]; + String[] str = real.split(value); + String sel = str[1].replaceAll("[^(0-9\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", ""); + String[] valArr2 = sel.split("\\/"); + if(valArr2.length > 2){ + select = valArr2[0] + '/' + valArr[3] + valArr2[1]; + }else { + select = sel; + } + }else{ + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))) { + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", "").replace(value,""); + }else { + select = real.replaceAll("[^(0-9a-zA-Z\\.\\(\\(\\)\\)\\s\\/\\-\\:)]", ""); + } - // 如果类别小写 转 大写 - Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); - if (pattern.matcher(value).matches()) { - value = value.toUpperCase(); + // 如果类别小写 转 大写 + Pattern pattern = Pattern.compile("^[a-zA-Z\\/]+$"); + if (pattern.matcher(value).matches()) { + value = value.toUpperCase(); + } + } + if (dicMap.containsKey(value.toUpperCase()) && dicMap.get(value.toUpperCase()) != null && !"".equals(dicMap.get(value.toUpperCase()))){ + real = value + " " + select; + }else { + select = real; + value = null; } - } - if (dicMap.containsKey(value) && dicMap.get(value) != null && !"".equals(dicMap.get(value))){ - real = value + " " + select; }else { - select = null; - value = real; + select = real; + value = null; } }else { value = real; @@ -1424,9 +1447,9 @@ public class SearchCenterServiceImpl implements SearchCenterService { if(null != value || null != selects){ if (null != value && selects == null) { boolSelectValue - .should(QueryBuilders.wildcardQuery("title.keyword", "*" + value + "*").boost(1000f)) - .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + value + "*").boost(0.0000000000000000000000000000000001f)) - .should(QueryBuilders.wildcardQuery("issue_time", "*" + value + "*")); + .should(QueryBuilders.wildcardQuery("title.keyword", "*" + value.toUpperCase() + "*").boost(1000f)) + .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + value.toUpperCase() + "*").boost(0.0000000000000000000000000000000001f)) + .should(QueryBuilders.wildcardQuery("issue_time", "*" + value.toUpperCase() + "*")); // multiQueryBuilder = QueryBuilders.multiMatchQuery("*"+value+"*", // "title.keyword", "textContent", "issue_time").minimumShouldMatch("100%").field("title.keyword", 1000f).field("textContent.keyword", 0.0000000000000000000000000000000001f); //// boolQueryMust.must(multiQueryBuilder); @@ -1435,9 +1458,9 @@ 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("issue_time", "*" + real + "*")); + .should(QueryBuilders.wildcardQuery("title.keyword", "*" + real.toUpperCase() + "*").boost(1000f)) + .should(QueryBuilders.wildcardQuery("textContent.keyword", "*" + real.toUpperCase() + "*").boost(0.0000000000000000000000000000000001f)) + .should(QueryBuilders.wildcardQuery("issue_time", "*" + real.toUpperCase() + "*")); // for (String se : selects) { // if (StringUtils.isNotBlank(se)) { // boolSelectValue