一般检索(全文)添加
This commit is contained in:
+187
-51
@@ -42,8 +42,6 @@ import com.jero.modules.laws.standard.service.ILawsNewsFeedService;
|
|||||||
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
import com.jero.modules.oss.service.IOSSFileService;
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
import com.jero.modules.system.service.ISysDepartService;
|
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
|
||||||
import com.jero.modules.tag.entity.LawsTag;
|
import com.jero.modules.tag.entity.LawsTag;
|
||||||
import com.jero.modules.tag.service.ILawsTagService;
|
import com.jero.modules.tag.service.ILawsTagService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -351,96 +349,100 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
|||||||
LawsHomeNormalSearchStatisticsVO obj = new LawsHomeNormalSearchStatisticsVO();
|
LawsHomeNormalSearchStatisticsVO obj = new LawsHomeNormalSearchStatisticsVO();
|
||||||
switch (lawsHomeNormalSearchDTO.getResourceType()){
|
switch (lawsHomeNormalSearchDTO.getResourceType()){
|
||||||
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||||
count1(queryWrapper,obj);
|
List<LawsHomeNormalSearchCountVO> list1 = lawsHomeSearchMapper.getCount1(queryWrapper);
|
||||||
|
count1(list1,obj);
|
||||||
break;
|
break;
|
||||||
case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD:
|
case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD:
|
||||||
count2(queryWrapper,obj);
|
List<LawsHomeNormalSearchCountVO> list2 = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||||
|
count2(list2,obj);
|
||||||
break;
|
break;
|
||||||
case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD:
|
case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD:
|
||||||
count3(queryWrapper,obj);
|
List<LawsHomeNormalSearchCountVO> list3 = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||||
|
count3(list3,obj);
|
||||||
break;
|
break;
|
||||||
default:break;
|
default:break;
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void count3(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
private void count3(List<LawsHomeNormalSearchCountVO> list,LawsHomeNormalSearchStatisticsVO obj) {
|
||||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount2(queryWrapper);
|
|
||||||
// 企业标准代号
|
// 企业标准代号
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "enterprise_standard_code", "standard_code");
|
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, "enterprise_standard_code", "standard_code");
|
||||||
if(!CollectionUtils.isEmpty(list1)){
|
if(!CollectionUtils.isEmpty(list1)){
|
||||||
obj.setStandardCode(list1);
|
obj.setStandardCode(list1);
|
||||||
}
|
}
|
||||||
// 标准状态
|
// 标准状态
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "enterprise_standard_state", "standard_state");
|
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "enterprise_standard_state", "standard_state");
|
||||||
if(!CollectionUtils.isEmpty(list2)){
|
if(!CollectionUtils.isEmpty(list2)){
|
||||||
obj.setEnterpriseStandardState(list2);
|
obj.setEnterpriseStandardState(list2);
|
||||||
}
|
}
|
||||||
// 标准等级分类
|
// 标准等级分类
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "standard_grade_classify", "grade_classification");
|
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list,"standard_grade_classify", "grade_classification");
|
||||||
if(!CollectionUtils.isEmpty(list3)){
|
if(!CollectionUtils.isEmpty(list3)){
|
||||||
obj.setGradeClassification(list3);
|
obj.setGradeClassification(list3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void count2(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
private void count2(List<LawsHomeNormalSearchCountVO> list,LawsHomeNormalSearchStatisticsVO obj) {
|
||||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount2(queryWrapper);
|
|
||||||
// 标准类别
|
// 标准类别
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "standard_type_overseas", "standard_class");
|
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, "standard_type_overseas", "standard_class");
|
||||||
if(!CollectionUtils.isEmpty(list1)){
|
if(!CollectionUtils.isEmpty(list1)){
|
||||||
obj.setStandardClass(list1);
|
obj.setStandardClass(list1);
|
||||||
}
|
}
|
||||||
// 适用车辆类型
|
// 适用车辆类型
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "APPLICATIONS_OVERSEAS", "applicable_vehicle");
|
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "APPLICATIONS_OVERSEAS", "applicable_vehicle");
|
||||||
if(!CollectionUtils.isEmpty(list2)){
|
if(!CollectionUtils.isEmpty(list2)){
|
||||||
obj.setApplicableVehicle(list2);
|
obj.setApplicableVehicle(list2);
|
||||||
}
|
}
|
||||||
// 状态
|
// 状态
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "standard_state", "standard_state");
|
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, "standard_state", "standard_state");
|
||||||
if(!CollectionUtils.isEmpty(list3)){
|
if(!CollectionUtils.isEmpty(list3)){
|
||||||
obj.setStandardState(list3);
|
obj.setStandardState(list3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void count1(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
private void count1(List<LawsHomeNormalSearchCountVO> list, LawsHomeNormalSearchStatisticsVO obj) {
|
||||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount1(queryWrapper);
|
|
||||||
// 标准类别
|
// 标准类别
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "standard_type", "standard_class");
|
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list,"standard_type", "standard_class");
|
||||||
if(!CollectionUtils.isEmpty(list1)){
|
if(!CollectionUtils.isEmpty(list1)){
|
||||||
obj.setStandardClass(list1);
|
obj.setStandardClass(list1);
|
||||||
}
|
}
|
||||||
// 动力类型
|
// 动力类型
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "dynamic_type", "dynamic_type");
|
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "POWER_TYPE_DOMESTIC", "dynamic_type");
|
||||||
if(!CollectionUtils.isEmpty(list2)){
|
if(!CollectionUtils.isEmpty(list2)){
|
||||||
obj.setDynamicType(list2);
|
obj.setDynamicType(list2);
|
||||||
}
|
}
|
||||||
// 适用车辆类型
|
// 适用车辆类型
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "APPLICATIONS_DOMESTIC", "applicable_vehicle");
|
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list,"APPLICATIONS_DOMESTIC", "applicable_vehicle");
|
||||||
if(!CollectionUtils.isEmpty(list3)){
|
if(!CollectionUtils.isEmpty(list3)){
|
||||||
obj.setApplicableVehicle(list3);
|
obj.setApplicableVehicle(list3);
|
||||||
}
|
}
|
||||||
// 标准类型
|
// 标准类型
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list4 = addLawsHomeNormalSearchStatistics(list, obj, "standard_property", "standard_property");
|
List<LawsHomeNormalSearchStatisticsObjVO> list4 = addLawsHomeNormalSearchStatistics(list, "standard_property", "standard_property");
|
||||||
if(!CollectionUtils.isEmpty(list4)){
|
if(!CollectionUtils.isEmpty(list4)){
|
||||||
obj.setStandardProperty(list4);
|
obj.setStandardProperty(list4);
|
||||||
}
|
}
|
||||||
// 状态
|
// 状态
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> list5 = addLawsHomeNormalSearchStatistics(list, obj, "standard_state", "standard_state");
|
List<LawsHomeNormalSearchStatisticsObjVO> list5 = addLawsHomeNormalSearchStatistics(list,"standard_state", "standard_state");
|
||||||
if(!CollectionUtils.isEmpty(list5)){
|
if(!CollectionUtils.isEmpty(list5)){
|
||||||
obj.setStandardState(list5);
|
obj.setStandardState(list5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<LawsHomeNormalSearchStatisticsObjVO> addLawsHomeNormalSearchStatistics(List<LawsHomeNormalSearchCountVO> list, LawsHomeNormalSearchStatisticsVO obj, String dictVal, String data) {
|
private List<LawsHomeNormalSearchStatisticsObjVO> addLawsHomeNormalSearchStatistics(List<LawsHomeNormalSearchCountVO> list, String dictVal, String data) {
|
||||||
List<DictModel> listStandardClass = sysBaseAPI.getDictItems(dictVal);
|
List<DictModel> listStandardClass = sysBaseAPI.getDictItems(dictVal);
|
||||||
List<LawsHomeNormalSearchStatisticsObjVO> listDict = new ArrayList<>();
|
List<LawsHomeNormalSearchStatisticsObjVO> listDict = new ArrayList<>();
|
||||||
for (DictModel dict : listStandardClass) {
|
for (DictModel dict : listStandardClass) {
|
||||||
LawsHomeNormalSearchStatisticsObjVO objVO = new LawsHomeNormalSearchStatisticsObjVO();
|
LawsHomeNormalSearchStatisticsObjVO objVO = new LawsHomeNormalSearchStatisticsObjVO();
|
||||||
objVO.setItemText(dict.getText());
|
objVO.setItemText(dict.getText());
|
||||||
objVO.setItemValue(dict.getValue());
|
objVO.setItemValue(dict.getValue());
|
||||||
Optional<LawsHomeNormalSearchCountVO> op = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && Arrays.asList(o.getDict().split(",")).contains(dict.getValue()) && Objects.equals(o.getFieldName(),data)).findFirst();
|
if(!CollectionUtils.isEmpty(list)){
|
||||||
if(op.isPresent()){
|
Optional<LawsHomeNormalSearchCountVO> op = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && Arrays.asList(o.getDict().split(",")).contains(dict.getValue()) && Objects.equals(o.getFieldName(),data)).findFirst();
|
||||||
objVO.setStatisticsCount(op.get().getCount());
|
if(op.isPresent()){
|
||||||
|
objVO.setStatisticsCount(op.get().getCount());
|
||||||
|
}else{
|
||||||
|
objVO.setStatisticsCount("0");
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
objVO.setStatisticsCount("0");
|
objVO.setStatisticsCount("0");
|
||||||
}
|
}
|
||||||
@@ -479,40 +481,71 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String selectValue = searchVO.getSelectValue();
|
String selectValue = searchVO.getSelectValue();
|
||||||
|
|
||||||
//1. 需要查询的字段
|
//1. 需要查询的字段
|
||||||
List<String> fieldList = new ArrayList<>();
|
// List<String> fieldList = new ArrayList<>();
|
||||||
fieldList.add("content");//权重1
|
// fieldList.add("content");//权重1
|
||||||
|
Map<String,String> mapDict = new HashMap<>();
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())){
|
||||||
|
mapDict.put("resource_type",homeNormalSearchDTO.getResourceType());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardClass())){
|
||||||
|
mapDict.put("standard_class",homeNormalSearchDTO.getStandardClass());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getDynamicType())){
|
||||||
|
mapDict.put("dynamic_type",homeNormalSearchDTO.getDynamicType());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getApplicableVehicle())){
|
||||||
|
mapDict.put("applicable_vehicle",homeNormalSearchDTO.getApplicableVehicle());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardProperty())){
|
||||||
|
mapDict.put("standard_property",homeNormalSearchDTO.getStandardProperty());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardState())){
|
||||||
|
mapDict.put("standard_state",homeNormalSearchDTO.getStandardState());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardCode())){
|
||||||
|
mapDict.put("standard_code",homeNormalSearchDTO.getStandardCode());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getEnterpriseStandardState())){
|
||||||
|
mapDict.put("enterprise_standard_state",homeNormalSearchDTO.getEnterpriseStandardState());
|
||||||
|
}
|
||||||
|
if(!StringUtils.isBlank(homeNormalSearchDTO.getGradeClassification())){
|
||||||
|
mapDict.put("grade_classification",homeNormalSearchDTO.getGradeClassification());
|
||||||
|
}
|
||||||
|
JSONObject jsonAll = new JSONObject();
|
||||||
|
JSONArray queryMapJsonAll = new JSONArray();
|
||||||
|
JSONArray queryMapJsonDict = new JSONArray();
|
||||||
|
mapDict.forEach((k,v)->{
|
||||||
|
Map<String, Object> map1 = new HashMap<>();
|
||||||
|
Map<String, Object> map2 = new HashMap<>();
|
||||||
|
map2.put(k,v);
|
||||||
|
map1.put("match_phrase",map2);
|
||||||
|
queryMapJsonDict.add(map1);
|
||||||
|
});
|
||||||
|
|
||||||
JSONArray queryMapJson = new JSONArray();
|
JSONArray queryMapJson = new JSONArray();
|
||||||
JSONArray queryMapJsonAll = new JSONArray();
|
|
||||||
|
|
||||||
Map<String,Object> mapHighlight = new HashMap<>();
|
Map<String,Object> mapHighlight = new HashMap<>();
|
||||||
Map<String,Object> mapHighlight1 = new HashMap<>();
|
Map<String,Object> mapHighlight1 = new HashMap<>();
|
||||||
//封装首次的条件
|
// 封装首次的条件
|
||||||
if (StringUtils.isNotBlank(selectValue)) {
|
if (StringUtils.isNotBlank(selectValue)) {
|
||||||
selectValue = selectValue.toLowerCase();
|
selectValue = selectValue.toLowerCase();
|
||||||
for (String field : fieldList) {
|
getQueryMapJson(queryMapJson, selectValue, "content");
|
||||||
getQueryMapJson(queryMapJson, selectValue, field);
|
//高亮
|
||||||
//高亮
|
highlight(mapHighlight, "content");
|
||||||
if(!"flag".equals(field)){
|
|
||||||
highlight(mapHighlight, field);
|
|
||||||
} else {
|
|
||||||
// query_string查询
|
|
||||||
Map<String, Object> map25 = new HashMap<>();
|
|
||||||
Map<String, Object> map45 = new HashMap<>();
|
|
||||||
map25.put("query", selectValue);
|
|
||||||
map25.put("fields", fieldList.toArray());
|
|
||||||
map25.put("allow_leading_wildcard", false); //禁用了前置通配符
|
|
||||||
map45.put("query_string", map25);
|
|
||||||
queryMapJson.add(map45);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mapHighlight1.put("fields",mapHighlight);
|
mapHighlight1.put("fields",mapHighlight);
|
||||||
}
|
}
|
||||||
if(CollectionUtils.isNotEmpty(queryMapJson)){
|
if(CollectionUtils.isNotEmpty(queryMapJson)){
|
||||||
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
|
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
|
||||||
queryMapJsonAll.add(jsonObject);
|
queryMapJsonDict.add(jsonObject);
|
||||||
}
|
}
|
||||||
|
if(CollectionUtils.isNotEmpty(queryMapJsonDict)){
|
||||||
|
jsonAll.put("must",queryMapJsonDict);
|
||||||
|
JSONObject all = new JSONObject();
|
||||||
|
all.put("bool",jsonAll);
|
||||||
|
queryMapJsonAll.add(all);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
JSONObject sort = new JSONObject();
|
JSONObject sort = new JSONObject();
|
||||||
Map<String,Object> issueTimeDesc = new HashMap<>();
|
Map<String,Object> issueTimeDesc = new HashMap<>();
|
||||||
@@ -522,8 +555,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
|||||||
issueTimeAsc.put("order","asc");
|
issueTimeAsc.put("order","asc");
|
||||||
issueTime.put("resource_type",issueTimeAsc);
|
issueTime.put("resource_type",issueTimeAsc);
|
||||||
issueTime.put("standard_type",issueTimeDesc);
|
issueTime.put("standard_type",issueTimeDesc);
|
||||||
// todo 排序号
|
|
||||||
// issueTime.put("resource_type",issueTime);
|
|
||||||
issueTime.put("create_time",issueTimeDesc);
|
issueTime.put("create_time",issueTimeDesc);
|
||||||
sort.putAll(issueTime);
|
sort.putAll(issueTime);
|
||||||
IPage page = getIPage(selectValue, queryMapJsonAll, mapHighlight1,
|
IPage page = getIPage(selectValue, queryMapJsonAll, mapHighlight1,
|
||||||
@@ -659,7 +690,106 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LawsHomeNormalSearchStatisticsVO getNormalSearchAllCount(LawsHomeNormalSearchDTO homeNormalSearchDTO) {
|
public LawsHomeNormalSearchStatisticsVO getNormalSearchAllCount(LawsHomeNormalSearchDTO homeNormalSearchDTO) {
|
||||||
return null;
|
LawsHomeNormalSearchStatisticsVO obj = new LawsHomeNormalSearchStatisticsVO();
|
||||||
|
String searchContent = homeNormalSearchDTO.getSearchContent();
|
||||||
|
if(StringUtils.isBlank(searchContent)){
|
||||||
|
throw new JeroBootException(ResultCommon.PLEASE_SEARCH_TO_IMPORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断索引是否存在
|
||||||
|
boolean flagTemp;
|
||||||
|
flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||||
|
if (!flagTemp) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
SearchVO searchVO = new SearchVO();
|
||||||
|
searchVO.setSelectValue(homeNormalSearchDTO.getSearchContent());
|
||||||
|
if(StringUtils.isBlank(searchVO.getSelectValue())){
|
||||||
|
searchVO.setSelectValue(SEARCH_FLAG);
|
||||||
|
}
|
||||||
|
String selectValue = searchVO.getSelectValue().toLowerCase();
|
||||||
|
|
||||||
|
List<String> listField = new ArrayList<>();
|
||||||
|
listField.add("resource_type");
|
||||||
|
listField.add("standard_class");
|
||||||
|
listField.add("dynamic_type");
|
||||||
|
listField.add("applicable_vehicle");
|
||||||
|
listField.add("standard_property");
|
||||||
|
listField.add("standard_state");
|
||||||
|
listField.add("standard_code");
|
||||||
|
listField.add("enterprise_standard_state");
|
||||||
|
listField.add("grade_classification");
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
for (String s : listField) {
|
||||||
|
Map<String, Object> map1 = new HashMap<>();
|
||||||
|
Map<String, Object> map2 = new HashMap<>();
|
||||||
|
map1.put("field",s + ".keyword");
|
||||||
|
map2.put("terms",map1);
|
||||||
|
map.put(s + "_aggs",map2);
|
||||||
|
}
|
||||||
|
jsonObject.put("aggs",map);
|
||||||
|
jsonObject.put("size",0);
|
||||||
|
|
||||||
|
// JSONArray queryMapJson = new JSONArray();
|
||||||
|
// // 封装首次的条件
|
||||||
|
// if (StringUtils.isNotBlank(selectValue)) {
|
||||||
|
// getQueryMapJson(queryMapJson, selectValue, "content");
|
||||||
|
// }
|
||||||
|
// if(CollectionUtils.isNotEmpty(queryMapJson)){
|
||||||
|
// JSONObject object = new JSONObject();
|
||||||
|
// object.put("should",queryMapJson);
|
||||||
|
// jsonObject.put("query",object);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
//2. 数据查询
|
||||||
|
JSONObject search = jeroElasticsearchTemplate.search(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), jsonObject);
|
||||||
|
LawsHomeNormalSearchStatisticsVO objVo = new LawsHomeNormalSearchStatisticsVO();
|
||||||
|
switch (homeNormalSearchDTO.getResourceType()){
|
||||||
|
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||||
|
List<LawsHomeNormalSearchCountVO> list1 = new ArrayList<>();
|
||||||
|
addVo(search, list1, "standard_class_aggs", "standard_class");
|
||||||
|
addVo(search, list1, "dynamic_type_aggs", "dynamic_type");
|
||||||
|
addVo(search, list1, "applicable_vehicle_aggs", "applicable_vehicle");
|
||||||
|
addVo(search, list1, "standard_property_aggs", "standard_property");
|
||||||
|
addVo(search, list1, "standard_state_aggs", "standard_state");
|
||||||
|
count1(list1,objVo);
|
||||||
|
break;
|
||||||
|
case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD:
|
||||||
|
List<LawsHomeNormalSearchCountVO> list2 = new ArrayList<>();
|
||||||
|
addVo(search, list2, "standard_class_aggs", "standard_class");
|
||||||
|
addVo(search, list2, "applicable_vehicle_aggs", "applicable_vehicle");
|
||||||
|
addVo(search, list2, "standard_state_aggs", "standard_state");
|
||||||
|
count2(list2,objVo);
|
||||||
|
break;
|
||||||
|
case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD:
|
||||||
|
List<LawsHomeNormalSearchCountVO> list3 = new ArrayList<>();
|
||||||
|
addVo(search, list3, "standard_code_aggs", "standard_code");
|
||||||
|
addVo(search, list3, "standard_state_aggs", "standard_state");
|
||||||
|
addVo(search, list3, "grade_classification_aggs", "grade_classification");
|
||||||
|
count3(list3,objVo);
|
||||||
|
break;
|
||||||
|
default:break;
|
||||||
|
}
|
||||||
|
return objVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addVo(JSONObject search, List<LawsHomeNormalSearchCountVO> list, String standard_class_aggs, String standard_class) {
|
||||||
|
List<Map<String, Object>> list1 = (List<Map<String, Object>>) ((Map) ((Map) search.get("aggregations")).get(standard_class_aggs)).get("buckets");
|
||||||
|
if (!CollectionUtils.isEmpty(list1)) {
|
||||||
|
for (Map<String, Object> stringObjectMap : list1) {
|
||||||
|
LawsHomeNormalSearchCountVO objVo = new LawsHomeNormalSearchCountVO();
|
||||||
|
if (Objects.isNull(stringObjectMap.get("key"))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
objVo.setFieldName(standard_class);
|
||||||
|
objVo.setDict(stringObjectMap.get("key").toString());
|
||||||
|
objVo.setCount(Objects.isNull(stringObjectMap.get("doc_count")) ? "0" : stringObjectMap.get("doc_count").toString());
|
||||||
|
list.add(objVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -669,6 +799,12 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
|||||||
}
|
}
|
||||||
log.info("================ES更新数据开始=================");
|
log.info("================ES更新数据开始=================");
|
||||||
try{
|
try{
|
||||||
|
//判断索引是否存在
|
||||||
|
boolean flagTemp;
|
||||||
|
flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||||
|
if (!flagTemp) {
|
||||||
|
jeroElasticsearchTemplate.createIndex(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||||
|
}
|
||||||
switch (resourceType){
|
switch (resourceType){
|
||||||
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||||
updateLawsDomesticStandardToEs(resourceType,ids,opType);
|
updateLawsDomesticStandardToEs(resourceType,ids,opType);
|
||||||
|
|||||||
Reference in New Issue
Block a user