搜索中心-文档库列表
This commit is contained in:
+175
-57
@@ -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);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 全文
|
||||
|
||||
Reference in New Issue
Block a user