Merge remote-tracking branch 'origin/fix_20230911_UAT' into fix_20230911_UAT

This commit is contained in:
gaosong
2023-10-28 09:46:35 +08:00
3 changed files with 218 additions and 67 deletions
@@ -47,6 +47,7 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -99,6 +100,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
//删除英文标题
mapList.remove(index);
for (Map<String, Object> map : mapList) {
if("title".equals(map.get("db_field_name"))
&& CutEnum.EN.getValue().equals(cut)){
map.put("db_field_name","title_en");
}
}
//添加正文
Map<String, Object> map = new HashMap<>();
if(CutEnum.CN.getValue().equals(cut)){
@@ -213,7 +221,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
JSONArray jsonArrySort = new JSONArray();
JSONObject sort = new JSONObject();
Map<String,Object> mapSort = new HashMap<>();
Map<String,Object> mapSortTemp = new HashMap<>();
Map<String,Object> mapSortTemp = new LinkedHashMap<>();
if(StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(orderByField)){
//orderBy=1正序,orderBy=1倒序
if("1".equals(orderBy)){
@@ -227,10 +235,28 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
mapSortTemp.put(orderByField,mapSort);
}
}else{
mapSortTemp.put("serial_number.keyword","asc");
if(ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapOne")).get("serial_number"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("serial_number"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapOne")).get("title"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("title"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapOne")).get("title_en"))
|| ObjectUtils.isNotEmpty(((Map<String, Object>) map.get("mapTwo")).get("title_en"))){
Map<String,Object> score = new HashMap<>();
score.put("order","desc");
mapSortTemp.put("_score",score);
// Map<String,Object> map1 = new HashMap<>();
// map1.put("order","desc");
// mapSortTemp.put("serial_number.keyword",map1);
sort = new JSONObject(mapSortTemp);
}else{
mapSortTemp.put("serial_number.keyword","asc");
sort.putAll(mapSortTemp);
}
// sort.putAll(mapSortTemp);
// mapSortTemp.put("create_time","desc");
}
sort.putAll(mapSortTemp);
jsonArrySort.add(sort);
//封装查询条件
@@ -330,26 +356,67 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
String value = (String) entry.getValue();
if (ObjectUtils.isNotEmpty(value)) {
for (String s : value.split(",")) {
Map<String, Object> map = new HashMap<>();
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
JSONArray should = new JSONArray();
s = s.toLowerCase();
if(s.contains(" ")){
for (String valueTemp : s.split(" ")) {
Map<String,Object> mapTemp = new HashMap();
mapTemp.put(key,"*"+valueTemp+"*");
Map<String,Object> map1 = new HashMap<>();
map1.put("wildcard",mapTemp);
should.add(map1);
}
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should);
must.add(jsonObject);
}else{
Map<String, Object> map = new HashMap<>();
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> 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);
map.put("match",queryMap);
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);
map.put("match",queryMap);
}
must.add(map);
}
must.add(map);
}
}
}
}
//封装输入框查询条件
// if (ObjectUtils.isNotEmpty(inputMap)) {
// for (Map.Entry<String, Object> entry : inputMap.entrySet()) {
// String key = entry.getKey();
// String value = (String) entry.getValue();
// if (ObjectUtils.isNotEmpty(value)) {
// for (String s : value.split(",")) {
// Map<String, Object> map = new HashMap<>();
// Map<String, Object> queryMap = new HashMap<>();
// Map<String, Object> 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);
// map.put("match",queryMap);
// }
// must.add(map);
// }
// }
// }
// }
//封装下拉,树形查询条件
if (ObjectUtils.isNotEmpty(otherMap)) {
for (Map.Entry<String, Object> entry : otherMap.entrySet()) {