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); } });