From d25a615ee404bcb24085be04a53943420c6509ee Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Tue, 24 May 2022 10:37:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=90=9C=E7=B4=A2=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SearchCenterServiceImpl.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index 1a700f17..e6d28ffc 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -1330,10 +1330,30 @@ public class SearchCenterServiceImpl implements SearchCenterService { QueryBuilder multiQueryBuilder; QueryBuilder multiQueryBuilder1; QueryBuilder queryBuilder1 = QueryBuilders.multiMatchQuery(""); - queryBuilder1 = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), - "sortTitle","numberTitle","yearOrder","nameTitle","title" - ).minimumShouldMatch("100%").field("sortTitle",1005f).field("numberTitle",1004f).field("yearOrder",1003f).field("nameTitle",1002f).field("title",1000f); - boolQueryBuilder.must(queryBuilder1); + if(StringUtils.isNotBlank(searchInfoEO.getSelectValue())){ + queryBuilder1 = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + "title" + ).minimumShouldMatch("100%").field("title",1000f); + boolQueryBuilder.must(queryBuilder1); + } + + + BoolQueryBuilder queryBuilder = new BoolQueryBuilder(); + if(StringUtils.isNotBlank(searchInfoEO.getNYLXCLASS()) || StringUtils.isNotBlank(searchInfoEO.getCLLX())){ + if(StringUtils.isNotBlank(searchInfoEO.getNYLXCLASS())){ + queryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getNYLXCLASS(), + "textContent" + ).minimumShouldMatch("100%").field("title",1000f)); + } + + if(StringUtils.isNotBlank(searchInfoEO.getCLLX())){ + queryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getCLLX(), + "textContent" + ).minimumShouldMatch("100%").field("title",1000f)); + } + + boolQueryBuilder.must(queryBuilder); + } //在结果中检索 HighlightBuilder hiBuilder=new HighlightBuilder();