From a78703ede7827584e3db26ad79811f2a182300c9 Mon Sep 17 00:00:00 2001 From: chenshaohua <635616957@qq.com> Date: Fri, 26 Jun 2026 13:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0es=E6=9F=A5=E8=AF=A2=E6=98=AF?= =?UTF-8?q?JobTitle=E6=88=96=E8=80=85JobCategory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/service/impl/ESJobSearchImpl.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 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 8684aff..a6a2a45 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 @@ -500,18 +500,27 @@ public class ESJobSearchImpl implements IESJobSearchService String cateStr = esJobSearch.getJobCategory(); if (!StringUtil.isEmptyOrNull(titleStr) || !StringUtil.isEmptyOrNull(cateStr)) { wrapper.and(sub -> { - boolean first = true; sub.or(); + boolean hasPrev = false; if (!StringUtil.isEmptyOrNull(titleStr)) { String[] words = titleStr.split(","); - for (String w : words) { - if (!first) sub.or(); + for (int i = 0; i < words.length; i++) { + String w = words[i]; sub.match(ESJobDocument::getJobTitle, w, 5.0f); - first = false; + if (i != words.length - 1) { + sub.or(); + } } + hasPrev = true; + sub.or(); + sub.eq(ESJobDocument::getJobCategory, titleStr); } - if (!StringUtil.isEmptyOrNull(cateStr)) { - if (!first) sub.or(); + if (!StringUtil.isEmptyOrNull(cateStr) && !cateStr.equals(titleStr)) { + if (hasPrev) { + sub.or(); + } + sub.match(ESJobDocument::getJobTitle, cateStr, 5.0f); + sub.or(); sub.eq(ESJobDocument::getJobCategory, cateStr); } });