搜索中心-文档库列表

This commit is contained in:
zhn
2023-12-22 15:32:33 +08:00
parent 5fe9959a94
commit a11368280c
@@ -358,68 +358,30 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
String key = entry.getKey();
String value = (String) entry.getValue();
if (ObjectUtils.isNotEmpty(value)) {
for (String s : value.split(",")) {
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<>();
String regex = "([\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(value);
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);
}
List<String> list = new ArrayList<>();
while (matcher.find()) {
String group = matcher.group();
list.add(group);
}
JSONArray should = new JSONArray();
for (String s : list) {
Map<String, Object> map33 = new HashMap<>();
map33.put("query",s);
Map<String,Object> map1 = new HashMap<>();
map1.put(key,map33);
Map<String,Object> map2 = new HashMap<>();
map2.put("match",map1);
should.add(map2);
}
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should);
must.add(jsonObject);
}
}
}
//封装输入框查询条件
// 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()) {
@@ -485,6 +447,162 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
}
}
// private void queryCondition(Map<String, Object> mapOne, List<String> inputFieldList,
// List<String> otherFieldList, List<String> dateFieldList,JSONArray must) {
// Map<String, Object> inputMap = new HashMap<>();//条件内容为输入框的
// Map<String, Object> otherMap = new HashMap<>();//条件内容为下拉,日期,树形
// Map<String, Object> dateMap = new HashMap<>();//条件内容为下拉,树形
// //区分输入框和下拉,树形,日期等字段
// if (ObjectUtils.isNotEmpty(mapOne)) {
// for (Map.Entry<String, Object> entry : mapOne.entrySet()) {
// String key = entry.getKey();
// Object value = entry.getValue();
// //处理二次搜索中选择列表数据
// if (inputFieldList.contains(key)) {
// inputMap.put(key, value);
// }
// if (otherFieldList.contains(key)) {
// otherMap.put(key, value);
// }
// if(dateFieldList.contains(key)){
// dateMap.put(key, value);
// }
// }
// }
//
// //封装输入框查询条件
// 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(",")) {
// 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);
// }
// 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()) {
// String key = entry.getKey();
// String value = (String) entry.getValue();
// if(StringUtils.isNotBlank(value)){
// if("technology_territory".equals(key) && ObjectUtils.isNotEmpty(value)){
// JSONArray should = new JSONArray();
//
// List<Map<String,Object>> mapList = new ArrayList<>();
// for (String s : value.split(",")) {
// Map<String,Object> map = new HashMap();
// map.put(key,"*"+s+"*");
// Map<String,Object> map1 = new HashMap<>();
// map1.put("wildcard",map);
// should.add(map1);
// }
// JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should);
// must.add(jsonObject);
// }else if("standard_system".equals(key) && ObjectUtils.isNotEmpty(value)){
// JSONArray should = new JSONArray();
//
// List<Map<String,Object>> mapList = new ArrayList<>();
// for (String s : value.split(",")) {
// Map<String,Object> map = new HashMap();
// map.put("query",s);
// Map<String,Object> map1 = new HashMap<>();
// map1.put(key,map);
// Map<String,Object> map2 = new HashMap<>();
// map2.put("match",map1);
// should.add(map2);
// }
// 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<>();
// queryMapTemp.put("query", value);
// queryMap.put(key, queryMapTemp);
// map.put("match",queryMap);
// must.add(map);
// }
// }
// }
// }
// //封装时间类型字段查询(时间范围)
// if (ObjectUtils.isNotEmpty(dateMap)) {
// for (Map.Entry<String, Object> entry : dateMap.entrySet()) {
// String key = entry.getKey();
// String value = (String) entry.getValue();
// Map<String, Object> queryMap = new HashMap<>();
// Map<String, Object> queryMapTemp = new HashMap<>();
// if (ObjectUtils.isNotEmpty(value)) {
// Map<String, Object> map = new HashMap<>();
// map.put("gte", value.split(",")[0]);
// map.put("lte", value.split(",")[1]);
// map.put("format", "yyyy-MM-dd");
// queryMap.put(key, map);
// queryMapTemp.put("range", queryMap);
// must.add(queryMapTemp);
// }
// }
// }
// }
/**
* 全文