搜索中心-文档库列表
This commit is contained in:
+175
-57
@@ -358,68 +358,30 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
String value = (String) entry.getValue();
|
String value = (String) entry.getValue();
|
||||||
if (ObjectUtils.isNotEmpty(value)) {
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
for (String s : value.split(",")) {
|
String regex = "([\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+)";
|
||||||
JSONArray should = new JSONArray();
|
Pattern pattern = Pattern.compile(regex);
|
||||||
s = s.toLowerCase();
|
Matcher matcher = pattern.matcher(value);
|
||||||
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")){
|
List<String> list = new ArrayList<>();
|
||||||
s = s.toLowerCase();
|
while (matcher.find()) {
|
||||||
queryMap.put(key, "*" + s + "*");
|
String group = matcher.group();
|
||||||
map.put("wildcard", queryMap);
|
list.add(group);
|
||||||
} 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
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)) {
|
if (ObjectUtils.isNotEmpty(otherMap)) {
|
||||||
for (Map.Entry<String, Object> entry : otherMap.entrySet()) {
|
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