搜索中心-文档库

This commit is contained in:
zhn
2023-10-27 19:25:12 +08:00
parent f93221000c
commit 6996a30c9a
@@ -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;
@@ -213,7 +214,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 +228,24 @@ 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"))){
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);
//封装查询条件
@@ -332,15 +347,34 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
for (String s : value.split(",")) {
JSONArray should = new JSONArray();
s = s.toLowerCase();
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);
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);
}
must.add(map);
}
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should);
must.add(jsonObject);
}
}
}