bug: 搜索中心字段排序问题

This commit is contained in:
wxyclub
2023-11-20 14:59:52 +08:00
parent be6f977824
commit e2f436c66a
3 changed files with 51 additions and 22 deletions
@@ -246,15 +246,15 @@ public class SearchCenterServiceImpl implements SearchCenterService {
sortField2 = "lawsYear"; sortField2 = "lawsYear";
sortField3 = "lawsType.keyword"; sortField3 = "lawsType.keyword";
} else if("bussstand".equals(searchInfoEO.getSelectIndex())) { } else if("bussstand".equals(searchInfoEO.getSelectIndex())) {
sortField1 = "put_time_data"; // sortField1 = "put_time_data";
sortField2 = "standNumber"; sortField1 = "standNumber";
sortField3 = "standYear"; sortField2 = "standYear";
sortField4 = "standSort.keyword"; sortField3 = "standSort.keyword";
} else if ("stand".equals(searchInfoEO.getSelectIndex())) { } else if ("stand".equals(searchInfoEO.getSelectIndex())) {
sortField1 = "SSRQName"; sortField1 = "SSRQName";
sortField2 = "standNumber"; // sortField2 = "standNumber";
sortField3 = "standYear"; // sortField3 = "standYear";
sortField4 = "standSort.keyword"; // sortField4 = "standSort.keyword";
} else { } else {
sortField1 = "standNumber"; sortField1 = "standNumber";
sortField2 = "standYear"; sortField2 = "standYear";
@@ -305,15 +305,19 @@ public class SearchCenterServiceImpl implements SearchCenterService {
} }
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
.addSort(new ScoreSortBuilder().order(SortOrder.DESC)) if ("stand".equals(searchInfoEO.getSelectIndex())) {
.addSort(sortField1, SortOrder.DESC) searchRequestBuilder.addSort(sortField1,SortOrder.DESC);
} else {
searchRequestBuilder.addSort(new ScoreSortBuilder().order(SortOrder.DESC))
.addSort("standSortOrder", SortOrder.ASC) .addSort("standSortOrder", SortOrder.ASC)
.addSort(sortField2, SortOrder.ASC) .addSort(sortField1, SortOrder.ASC)
.addSort(sortField3, SortOrder.DESC) .addSort(sortField2, SortOrder.DESC)
.addSort(sortField4, SortOrder.ASC) .addSort(sortField3, SortOrder.ASC)
.addSort("issue_time_data", SortOrder.DESC) .addSort("issue_time_data", SortOrder.DESC);
.setFrom((searchInfoEO.getPage()-1) * searchInfoEO.getPageSize()) }
searchRequestBuilder.setFrom((searchInfoEO.getPage()-1) * searchInfoEO.getPageSize())
.setSize(searchInfoEO.getPageSize()); .setSize(searchInfoEO.getPageSize());
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
@@ -115,7 +115,7 @@ public class SendBussMQService {
if (issue_time_data != null) { if (issue_time_data != null) {
saveMap.put("issue_time_data",issue_time_data.getTime()); saveMap.put("issue_time_data",issue_time_data.getTime());
}else{ }else{
saveMap.put("issue_time_data",-1000000000000000000L); saveMap.put("issue_time_data",-100000000L);
} }
//实施日期 高级查询 //实施日期 高级查询
@@ -134,17 +134,22 @@ public class SendBussMQService {
try { try {
putTime = sdf.parse(infoEO.getPutTime()); putTime = sdf.parse(infoEO.getPutTime());
String putTimeStr = String.valueOf(putTime.getTime()); String putTimeStr = String.valueOf(putTime.getTime());
saveMap.put("putDate",sdf.format(putTime));
if (putTimeStr.length() > 12) { if (putTimeStr.length() > 12) {
saveMap.put("put_time_data",putTimeStr); saveMap.put("put_time_data",putTimeStr);
} else { } else {
saveMap.put("put_time_data","0" + putTimeStr); saveMap.put("put_time_data","0" + putTimeStr);
logger.info("前面加零的put_time_data"+saveMap.get("put_time_data"));
} }
} catch (ParseException e) { } catch (ParseException e) {
saveMap.put("put_time_data",-1000000000L); saveMap.put("put_time_data",-100000000L);
saveMap.put("putDate",null);
} }
}else{ }else{
saveMap.put("put_time_data",-1000000000L); saveMap.put("put_time_data",-100000000L);
saveMap.put("putDate",null);
} }
logger.info("saveMap实施日期:"+saveMap.get("put_time_data"));
saveMap.put("warehousingTime",sdf.format(infoEO.getCreationTime())); // 入库时间 saveMap.put("warehousingTime",sdf.format(infoEO.getCreationTime())); // 入库时间
if (infoEO.getCreationTime().getTime() > 12) { if (infoEO.getCreationTime().getTime() > 12) {
saveMap.put("warehousingTimeStamp",infoEO.getCreationTime().getTime()); // 入库时间戳 saveMap.put("warehousingTimeStamp",infoEO.getCreationTime().getTime()); // 入库时间戳
@@ -168,7 +168,7 @@ public class SendStandMQService {
if (issue_time_data != null) { if (issue_time_data != null) {
saveMap.put("issue_time_data",issue_time_data.getTime()); saveMap.put("issue_time_data",issue_time_data.getTime());
}else{ }else{
saveMap.put("issue_time_data",-1000000000000000000L); saveMap.put("issue_time_data",-100000000L);
} }
String standNatureName = ""; String standNatureName = "";
if(infoEO.getStandNature() != null && StringUtils.isNotBlank(infoEO.getStandNature())){ if(infoEO.getStandNature() != null && StringUtils.isNotBlank(infoEO.getStandNature())){
@@ -354,10 +354,30 @@ public class SendStandMQService {
} }
} }
} }
if (saveMap.get("SSRQName") != null) { // 确保SSRQ字段加入ES中
Map<String, Object> attrInfoCaseMap = infoEO.getAttrInfoCaseMap();
saveMap.put("SSRQName", saveMap.get("SSRQName").toString().replace(" ", "")); logger.info("saveMap.get(SSRQ) = " + saveMap.get("SSRQ"));
if (attrInfoCaseMap.get("SSRQ") != null && StringUtils.isNotBlank(attrInfoCaseMap.get("SSRQ").toString())) {
String ssrqName = "";
try {
Date parse = sdf.parse(attrInfoCaseMap.get("SSRQ").toString());
ssrqName = String.valueOf(parse.getTime());
saveMap.put("putDate", sdf.format(parse));
// ES中的排序问题,时间戳需要补0
if (ssrqName.length() <= 12) {
ssrqName = "0" + ssrqName;
}
} catch (ParseException e) {
saveMap.put("putDate", null);
ssrqName = "";
}
logger.info("SSRQName="+ ssrqName);
saveMap.put("SSRQName", ssrqName);
}else {
saveMap.put("putDate", null);
} }
logger.info("attrInfoCaseMap:"+ attrInfoCaseMap);
logger.info("SSRQName转换结束");
if("add".equals(addOrUpdate)){ if("add".equals(addOrUpdate)){
sarStandardsInfoService.insertIntoIndexForMap(saveMap); sarStandardsInfoService.insertIntoIndexForMap(saveMap);
} else { } else {