From 734c91eea1ecbb407a1bfac27773a46610ea5b6d Mon Sep 17 00:00:00 2001 From: chenshaohua <635616957@qq.com> Date: Mon, 6 Jul 2026 10:40:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9appList=E6=9F=A5=E8=AF=A2es?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E5=88=86=E6=95=B0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/cms/service/impl/ESJobSearchImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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"));