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