From 5fdb04f96f4a65227b98851f2d104c18a1e613b6 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Wed, 5 Jan 2022 21:21:48 +0800 Subject: [PATCH] feat: There is no way the, --- .../service/impl/SearchCenterServiceImpl.java | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 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 b0dd13fa..bf8b1979 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 @@ -1158,18 +1158,21 @@ public class SearchCenterServiceImpl implements SearchCenterService { List> result = new ArrayList<>(); SearchRequestBuilder searchRequestBuilder; BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + BoolQueryBuilder boolSelectValue = new BoolQueryBuilder(); + // 记录搜索记录到数据库中 if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ - boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), "title" ).minimumShouldMatch("100%").field("title",10f)); - boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), "textContent" ).minimumShouldMatch("100%").field("title",10f)); - boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), + boolSelectValue.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), "textItems" ).minimumShouldMatch("100%").field("title",10f)); - boolQueryBuilder.should(QueryBuilders.wildcardQuery("title.keyword","*"+searchInfoEO.getSelectValue()+"*")); + boolSelectValue.should(QueryBuilders.wildcardQuery("title.keyword","*"+searchInfoEO.getSelectValue()+"*")); + boolQueryBuilder.must(boolSelectValue); } //在结果中检索 if (StringUtils.isNotEmpty(searchInfoEO.getResultKeyword())) { @@ -1177,14 +1180,21 @@ public class SearchCenterServiceImpl implements SearchCenterService { boolQueryBuilder.must(multiQuery); } - if(StringUtils.isNotBlank(searchInfoEO.getNYLXCLASS())){ - boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getNYLXCLASS(), - "textContent" - ).minimumShouldMatch("100%").field("title",10f)); - }else if(StringUtils.isNotBlank(searchInfoEO.getCLLX())){ - boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getCLLX(), - "textContent" - ).minimumShouldMatch("100%").field("title",10f)); + 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",10f)); + } + + if(StringUtils.isNotBlank(searchInfoEO.getCLLX())){ + queryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getCLLX(), + "textContent" + ).minimumShouldMatch("100%").field("title",10f)); + } + + boolQueryBuilder.must(queryBuilder); } HighlightBuilder hiBuilder=new HighlightBuilder();