全文检索添加拆分id

This commit is contained in:
梁琦涛
2024-08-29 15:52:29 +08:00
parent e82bdac72b
commit 2bdb1a0954
@@ -41,6 +41,8 @@ import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
import com.jero.modules.laws.utils.HighlightUtil;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.service.ILawsTagService;
import lombok.extern.slf4j.Slf4j;
@@ -95,6 +97,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
private CommonAPI commonAPI;
@Resource
private ILawsTagService lawsTagService;
@Resource
private ISarFileSplitInfoService sarFileSplitInfoService;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@@ -841,7 +845,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
sort.add(m5);
// 查询字段
List<String> arr = Arrays.asList(CONTENT,"title",RESOURCE_TYPE,"id","release_date");
List<String> arr = Arrays.asList(CONTENT,"title",RESOURCE_TYPE,"id","release_date","file_id");
IPage page = getIPage(queryMapJsonAll, mapHighlight1,
pageNo, pageSize, sort,arr);
getRecords(page);
@@ -891,6 +895,26 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(map.containsKey(createTime) && !Objects.isNull(map.get(createTime))){
map.put(createTime,new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(createTime).toString())));
}
// 添加文档拆分id
String splitId = "splitId";
String resourceType = map.getOrDefault("resourceType","100").toString();
if(Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD) ||
Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD) ||
Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD)){
String fileId = "fileId";
if(map.containsKey(fileId) && !Objects.isNull(map.get(fileId))){
LambdaQueryWrapper<SarFileSplitInfoEO> querySarFileSplitInfoEO = new LambdaQueryWrapper<>();
querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getStandardId,map.get("id"));
querySarFileSplitInfoEO.in(SarFileSplitInfoEO::getFileId,
Arrays.asList(map.get(fileId).toString().split(",")));
SarFileSplitInfoEO sarFileSplitInfoEO = sarFileSplitInfoService.getOne(querySarFileSplitInfoEO,false);
if(!Objects.isNull(sarFileSplitInfoEO)){
map.put(splitId,sarFileSplitInfoEO.getId());
}else{
map.put(splitId,"");
}
}
}
listNew.add(map);
});
page.setRecords(listNew);
@@ -1533,7 +1557,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
if(!StringUtils.isBlank(lawsNewsFeed.getDynamicDetails())){
str = new StringBuilder(Jsoup.parse(lawsNewsFeed.getDynamicDetails()).text());
}
addES(obj, lawsNewsFeed.getId(), str);
addES(obj, lawsNewsFeed.getId(), str, null);
}else if(Objects.equals(opType,LawsHomeSearchCommon.LAWS_ES_DELETE)){
jeroElasticsearchTemplate.delete(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), lawsNewsFeed.getId());
}
@@ -1542,7 +1566,11 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
public void updateElasticsearch(LawsHomeNormalSearchVO obj,List<OSSFile> listFile){
String idTemp = obj.getId();
StringBuilder fileTextAll = getStringBuilder(listFile);
addES(obj, idTemp, fileTextAll);
List<String> fileIds = new ArrayList<>();
if(!CollectionUtils.isEmpty(listFile)){
fileIds = listFile.stream().map(OSSFile::getId).collect(Collectors.toList());
}
addES(obj, idTemp, fileTextAll,fileIds);
}
@NotNull
@@ -1578,7 +1606,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
}
}
private void addES(LawsHomeNormalSearchVO obj, String idTemp, StringBuilder fileTextAll){
private void addES(LawsHomeNormalSearchVO obj, String idTemp, StringBuilder fileTextAll,List<String> fileIds){
Map<String, Object> map = new HashMap<>();
map.put("id", obj.getId());
map.put("title", obj.getTitle());
@@ -1594,6 +1622,11 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
map.put(STANDARD_CODE,"," + obj.getStandardCode() + ",");
map.put(ENTERPRISE_STANDARD_STATE,"," + obj.getEnterpriseStandardState() + ",");
map.put(GRADE_CLASSIFICATION,"," + obj.getGradeClassification() + ",");
if(!CollectionUtils.isEmpty(fileIds)){
map.put("file_id",String.join(",",fileIds));
}else{
map.put("file_id","");
}
map.put("release_date",obj.getReleaseDate());
// 没有时间 强行加入最早时间
try {