diff --git a/cl_search_api/src/main/java/com/bfd/mf/common/service/cache/TopicQueryService.java b/cl_search_api/src/main/java/com/bfd/mf/common/service/cache/TopicQueryService.java index 2744b35..f85e4c6 100644 --- a/cl_search_api/src/main/java/com/bfd/mf/common/service/cache/TopicQueryService.java +++ b/cl_search_api/src/main/java/com/bfd/mf/common/service/cache/TopicQueryService.java @@ -41,9 +41,22 @@ public class TopicQueryService { boolQuery.must(valueLableQuery); } // 分类标签 + // 因为是多选,因此需要判断,如果是多个的话,需要先用, 分隔,然后再用模糊匹配进行查询 if(!("").equals(queryRequest.getCategoryLabel()) && null != queryRequest.getCategoryLabel()){ - QueryBuilder categoryLableQuery = QueryBuilders.termQuery(ESConstant.CATEGORYLABEL+".keyword",queryRequest.getCategoryLabel()); - boolQuery.must(categoryLableQuery); + // QueryBuilder categoryLableQuery = QueryBuilders.queryStringQuery(queryRequest.getCategoryLabel()).defaultField(ESConstant.CATEGORYLABEL); //+".keyword" + if(queryRequest.getCategoryLabel().contains(",")){ // 有多个标签查询,用should + String labels []= queryRequest.getCategoryLabel().split(","); + BoolQueryBuilder shouleLaelQuery = QueryBuilders.boolQuery(); + for (String label:labels) { + QueryBuilder categoryLableQuery = QueryBuilders.matchPhraseQuery(ESConstant.CATEGORYLABEL,label); + shouleLaelQuery.should(categoryLableQuery); + boolQuery.must(shouleLaelQuery); + } + }else{ + QueryBuilder categoryLableQuery = QueryBuilders.matchPhraseQuery(ESConstant.CATEGORYLABEL,queryRequest.getCategoryLabel()); + boolQuery.must(categoryLableQuery); + } + } // searchArea 地点 if (("").equals(queryRequest.getSearchArea())) { diff --git a/cl_search_api/src/main/resources/application.yml b/cl_search_api/src/main/resources/application.yml index 8dac74d..8da7d61 100644 --- a/cl_search_api/src/main/resources/application.yml +++ b/cl_search_api/src/main/resources/application.yml @@ -7,10 +7,10 @@ server: http2: enabled: true -logging: - config: ../etc/logback.xml - level: - com.bfd.mf.controller: trace +#logging: +# config: ../etc/logback.xml +# level: +# com.bfd.mf.controller: trace spring: datasource: