diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java index 5220fd6..b6cf01c 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java @@ -711,18 +711,20 @@ public class ESJobSearchImpl implements IESJobSearchService if(hasText(jobQuery.getType())){ wrapper.and(a->a.eq(ESJobDocument::getType,jobQuery.getType().trim())); } + + // 先开启打分、优先按匹配分数排序(关键词前台命中越高越靠前) + wrapper.trackScores(); + wrapper.sortByScore(SortOrder.DESC); if(Objects.nonNull(jobQuery.getOrder())){ - if (jobQuery.getOrder()==3){ - // 最大薪资排序 - wrapper.sort(SortBuilders.fieldSort("maxSalary").order(SortOrder.DESC).missing("_last")); - } else { - wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); - } - if (jobQuery.getOrder()==1){ + wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); + if(jobQuery.getOrder()==1){ wrapper.orderByDesc(ESJobDocument::getIsHot); wrapper.orderByDesc(ESJobDocument::getApplyNum); wrapper.orderByDesc(ESJobDocument::getView); } + if(jobQuery.getOrder()==3){ + wrapper.orderByDesc(ESJobDocument::getMaxSalary); + } }else{ //默认按照发布时间倒叙 wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last"));