Przeglądaj źródła

1、增加高亮显示

rayson 1 rok temu
rodzic
commit
eac9b403e1

+ 22 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -359,6 +359,12 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 //                        .Field("*")
                 //                        .preTags("<span style='color:red'>")
                 //                        .postTags("</span>").requireFieldMatch(false))
+                .withHighlightBuilder(new HighlightBuilder().field("name").field("enterpriseName")
+                                .field("enterpriseAnotherName").requireFieldMatch(Boolean.TRUE)
+                                .preTags("<span style='color:red'>")
+                        .postTags("</span>")
+                                .numOfFragments(10000)
+                )
                 .withPageable(pageable)
                 .build();
         SearchHits<ESJobAdvertisedMergeDO> search = elasticsearchTemplate.search(searchQuery, ESJobAdvertisedMergeDO.class);
@@ -366,13 +372,29 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
 
         search.getSearchHits().stream()
                 .forEach(searchHit -> {
+                    Map<String, List<String>> highlightFields = searchHit.getHighlightFields();
+
                     AppJobAdvertisedSearchRespVO respVO = new AppJobAdvertisedSearchRespVO();
                     respVO.setJob(JobAdvertisedConvert.INSTANCE.convert(searchHit.getContent()));
+                    if (null != highlightFields.get("name")){
+                        respVO.getJob()
+                                .setName(highlightFields.get("name").get(0));
+                    }
 
                     AppEnterpriseSimpleRespVO enterprise = EnterpriseConvert.INSTANCE.convert5(searchHit.getContent());
                     enterprise.setId(searchHit.getContent().getEnterpriseId());
+
                     enterprise.setName(searchHit.getContent().getEnterpriseName());
+                    if (null != highlightFields.get("enterpriseName")){
+                        enterprise.setName(highlightFields.get("enterpriseName").get(0));
+                    }
+
                     enterprise.setAnotherName(searchHit.getContent().getEnterpriseAnotherName());
+                    if (null != highlightFields.get("enterpriseAnotherName")){
+                        enterprise.setAnotherName(highlightFields.get("enterpriseAnotherName").get(0));
+                    }
+
+
                     respVO.setEnterprise(enterprise);
 
                     // 获取职位发布人