搜索功能处理

This commit is contained in:
wangchengjun
2022-03-31 03:06:40 +08:00
parent edc853ac86
commit bfa027d5db
@@ -25,6 +25,7 @@ import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -169,7 +170,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put("id", s); queryMapTemp.put("id", s);
queryMap.put("match", queryMapTemp); queryMap.put("match_phrase", queryMapTemp);
should.add(queryMap); should.add(queryMap);
} }
} }
@@ -275,7 +276,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put(key, s); queryMapTemp.put(key, s);
queryMap.put("match", queryMapTemp); queryMap.put("match_phrase", queryMapTemp);
must.add(queryMap); must.add(queryMap);
} }
} }
@@ -291,7 +292,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put(key, s); queryMapTemp.put(key, s);
queryMap.put("match", queryMapTemp); queryMap.put("match_phrase", queryMapTemp);
must.add(queryMap); must.add(queryMap);
} }
} }
@@ -382,7 +383,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
// Map<String, Object> queryMap = new HashMap<>(); // Map<String, Object> queryMap = new HashMap<>();
// Map<String, Object> queryMapTemp = new HashMap<>(); // Map<String, Object> queryMapTemp = new HashMap<>();
// queryMapTemp.put(key, s); // queryMapTemp.put(key, s);
// queryMap.put("match", queryMapTemp); // queryMap.put("match_phrase", queryMapTemp);
// must.add(queryMap); // must.add(queryMap);
// } // }
// } // }
@@ -399,7 +400,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
// Map<String, Object> queryMap = new HashMap<>(); // Map<String, Object> queryMap = new HashMap<>();
// Map<String, Object> queryMapTemp = new HashMap<>(); // Map<String, Object> queryMapTemp = new HashMap<>();
// queryMapTemp.put(key, s); // queryMapTemp.put(key, s);
// queryMap.put("match", queryMapTemp); // queryMap.put("match_phrase", queryMapTemp);
// must.add(queryMap); // must.add(queryMap);
// } // }
// } // }
@@ -474,22 +475,29 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
fieldList.add("file_name"); fieldList.add("file_name");
fieldList.add("id"); fieldList.add("id");
JSONArray queryMapJson = new JSONArray(); JSONArray queryMapJson = new JSONArray();
JSONArray queryMapJsonTwo = new JSONArray();
JSONArray queryMapJsonAll = new JSONArray();
if (StringUtils.isNotBlank(selectValue)) { if (StringUtils.isNotBlank(selectValue)) {
for (String field : fieldList) { for (String field : fieldList) {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> map2 = new HashMap<>(); Map<String, Object> map2 = new HashMap<>();
map2.put(field, selectValue); map2.put(field, selectValue);
queryMap.put("match", map2); queryMap.put("match_phrase", map2);
queryMapJson.add(queryMap); queryMapJson.add(queryMap);
} }
} }
if(CollectionUtils.isNotEmpty(queryMapJson)){
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
queryMapJsonAll.add(jsonObject);
}
if (StringUtils.isNotBlank(selectValueTwo)) { if (StringUtils.isNotBlank(selectValueTwo)) {
for (String field : fieldList) { for (String field : fieldList) {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> map2 = new HashMap<>(); Map<String, Object> map2 = new HashMap<>();
map2.put(field, selectValueTwo); map2.put(field, selectValueTwo);
queryMap.put("match", map2); queryMap.put("match_phrase", map2);
queryMapJson.add(queryMap); queryMapJsonTwo.add(queryMap);
} }
} }
//处理二次查询中选择了课表数据进行查询的情况 //处理二次查询中选择了课表数据进行查询的情况
@@ -498,13 +506,19 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put("id", s); queryMapTemp.put("id", s);
queryMap.put("match", queryMapTemp); queryMap.put("match_phrase", queryMapTemp);
queryMapJson.add(queryMap); queryMapJsonTwo.add(queryMap);
} }
} }
Integer pageNo = searchVO.getPageNo(); Integer pageNo = searchVO.getPageNo();
Integer pageSize = searchVO.getPageSize(); Integer pageSize = searchVO.getPageSize();
IPage page = getiPage(selectValue, selectValueTwo, queryMapJson, null, pageNo, pageSize, null); //封装二次查询
if(CollectionUtils.isNotEmpty(queryMapJsonTwo)){
JSONObject jsonObjectTwo = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonTwo);
queryMapJsonAll.add(jsonObjectTwo);
}
IPage page = getiPage(selectValue, selectValueTwo, queryMapJsonAll, null, pageNo, pageSize, null);
return page; return page;
@@ -518,7 +532,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
if ("paragraphFlag".equals(paragraphFlag)) { if ("paragraphFlag".equals(paragraphFlag)) {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, should); jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, should);
} else { } else {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson); jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null);
} }
//全部 //全部
//1. 条件,分页 //1. 条件,分页
@@ -796,7 +810,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> queryMap = new HashMap<>(); Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>(); Map<String, Object> queryMapTemp = new HashMap<>();
queryMapTemp.put("id", s); queryMapTemp.put("id", s);
queryMap.put("match", queryMapTemp); queryMap.put("match_phrase", queryMapTemp);
should.add(queryMap); should.add(queryMap);
} }
} }