From 688b5f358aa4be610065d70a367e8cffde5bef89 Mon Sep 17 00:00:00 2001 From: sh Date: Tue, 14 Jul 2026 12:30:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9es=E6=9F=A5=E8=AF=A2=E5=B2=97?= =?UTF-8?q?=E4=BD=8D=E5=90=8D=E7=A7=B0=E6=88=96=E8=80=85=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/service/impl/ESJobSearchImpl.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 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 207074f..fdb0c83 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 @@ -499,23 +499,41 @@ public class ESJobSearchImpl implements IESJobSearchService ); } }*/ - //优化岗位名称查询,只有命中岗位名称或者分类就行 + String titleStr = esJobSearch.getJobTitle(); String cateStr = esJobSearch.getJobCategory(); boolean hasTitle = !StringUtil.isEmptyOrNull(titleStr); boolean hasCate = !StringUtil.isEmptyOrNull(cateStr); + if (hasTitle || hasCate) { wrapper.and(sub -> { if (hasTitle) { String[] words = titleStr.split(","); for (String w : words) { - if (!StringUtil.isEmptyOrNull(w)) { - sub.or().match(ESJobDocument::getJobTitle, w, 5.0f); + String word = w.trim(); + if (StringUtil.isEmptyOrNull(word)) { + continue; } + sub.or(inner -> inner + .match(ESJobDocument::getJobTitle, word, 5.0f) + .or() + .match(ESJobDocument::getJobCategory, word, 5.0f) + ); } } if (hasCate) { - sub.or().eq(ESJobDocument::getJobCategory, cateStr); + String[] words = cateStr.split(","); + for (String w : words) { + String word = w.trim(); + if (StringUtil.isEmptyOrNull(word)) { + continue; + } + sub.or(inner -> inner + .match(ESJobDocument::getJobTitle, word, 5.0f) + .or() + .match(ESJobDocument::getJobCategory, word, 5.0f) + ); + } } }); }