搜索中心-文档库
This commit is contained in:
+45
-11
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user