From 1b2c3fdeed8dddeff86df2d80d0cdc38bfa49a8b Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 1 Sep 2022 09:48:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=B8=AD=E5=BF=83--=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=BA=93=E6=AE=B5=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DocumentSearchServiceImpl.java | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java index d0c86f0de..50f5c7846 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java @@ -328,9 +328,11 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { Map queryMapTemp = new HashMap<>(); if (key.equals("serial_number")){ + s = s.toLowerCase(); queryMap.put(key, "*" + s + "*"); map.put("wildcard", queryMap); } else { + s = s.toLowerCase(); queryMapTemp.put("query", s); queryMapTemp.put("minimum_should_match", 2); queryMap.put(key, queryMapTemp); @@ -919,8 +921,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { */ @Override public IPage getParagraphInfoList(Map map) { + //指定module_type_flag= WDK + JSONArray queryJsonMust = new JSONArray(); + Map mapModule = new HashMap<>(); + Map mapModule1 = new HashMap<>(); + Map mapModule2 = new HashMap<>(); + mapModule.put("query", "WDK"); + mapModule1.put("module_type_flag", mapModule); + mapModule2.put("match", mapModule1); + queryJsonMust.add(mapModule2); + //段落, 有条件的时候,查询的数据中不含有魑的数据 + JSONArray queryJsonMustNot = new JSONArray(); if(ObjectUtils.isEmpty(map.get("mapOne"))){ ((Map) map.get("mapOne")).put("flag",SEARCH_FLAG); + }else{ + Map mapTemp = new HashMap<>(); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + mapTemp.put("query", SEARCH_FLAG); + map1.put("flag", mapTemp); + map2.put("match", map1); + queryJsonMustNot.add(map2); } String cut = (String) map.get("cut"); //module_type 代表文档库的段落 @@ -956,17 +977,20 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { JSONArray queryMapJsonAll = new JSONArray(); //首次查询条件 if (ObjectUtils.isNotEmpty(mapOne)) { - if(StringUtils.isNotBlank((String)mapOne.get("title")) - || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ - Map queryMap = new HashMap<>(); - Map queryMapTemp = new HashMap<>(); - queryMapTemp.put("flag",SEARCH_FLAG ); - queryMap.put("match_phrase", queryMapTemp); - queryMapJsonTemp.add(queryMap); - } +// if(StringUtils.isNotBlank((String)mapOne.get("title")) +// || StringUtils.isNotBlank((String)mapOne.get("serial_number"))){ +// Map queryMap = new HashMap<>(); +// Map queryMapTemp = new HashMap<>(); +// queryMapTemp.put("flag",SEARCH_FLAG ); +// queryMap.put("match_phrase", queryMapTemp); +// queryMapJsonTemp.add(queryMap); +// } for (Map.Entry entry : mapOne.entrySet()) { String key = entry.getKey(); String value = (String) entry.getValue(); + if("serial_number".equals(key) || "title".equals(key) || "file_text".equals(key)){ + value = value.toLowerCase(); + } if (ObjectUtils.isNotEmpty(value)) { for (String s : value.split(",")) { Map queryMap = new HashMap<>(); @@ -1007,6 +1031,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); queryMapJsonAll.add(jsonObject); } + if(CollectionUtils.isNotEmpty(queryJsonMust)){ + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryJsonMust, null, null); + queryMapJsonAll.add(jsonObject); + } } String ids = (String) mapTwo.get("ids"); @@ -1113,7 +1141,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { IPage iPage = getiPage(selectValue, selectValueTwo, queryMapJsonAll, mapHighlight1,null, - pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,null); + pageNo, pageSize, paragraphFlag,(String) map.get("cut"),sort,queryJsonMustNot); return iPage; }