| | |
| | | } |
| | | NativeSearchQuery searchQuery = searchQueryBuilder.build(); |
| | | searchQuery.setTrackTotalHits(true); |
| | | log.debug("searchGoods DSL:{}", searchQuery.getQuery()); |
| | | log.info("searchGoods DSL:{}", searchQuery.getQuery().toString()); |
| | | SearchHits<EsGoodsIndex> search = restTemplate.search(searchQuery, EsGoodsIndex.class); |
| | | return SearchHitSupport.searchPageFor(search, searchQuery.getPageable()); |
| | | } |
| | |
| | | FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()]; |
| | | filterFunctionBuilders.toArray(builders); |
| | | FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(QueryBuilders.matchAllQuery(), builders) |
| | | .scoreMode(FunctionScoreQuery.ScoreMode.SUM) |
| | | .setMinScore(2); |
| | | .scoreMode(FunctionScoreQuery.ScoreMode.SUM); |
| | | functionScoreQueryBuilder.setMinScore(0); |
| | | // if (CharSequenceUtil.isNotEmpty(searchDTO.getPromotionsId()) && CharSequenceUtil.isNotEmpty(searchDTO.getPromotionType())) { |
| | | // functionScoreQueryBuilder.setMinScore(0); |
| | | // }else if (cn.lili.common.utils.StringUtils.isNotBlank(searchDTO.getCategoryId())){ |
| | | // functionScoreQueryBuilder.setMinScore(0); |
| | | // } |
| | | // else { |
| | | // functionScoreQueryBuilder.setMinScore(2); |
| | | // } |
| | | //聚合搜索则将结果放入过滤条件 |
| | | filterBuilder.must(functionScoreQueryBuilder); |
| | | } else { |
| | |
| | | filterFunctionBuilders.toArray(builders); |
| | | FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(goodsNameMatchQuery, builders) |
| | | .scoreMode(FunctionScoreQuery.ScoreMode.SUM) |
| | | .setMinScore(2); |
| | | .setMinScore(0); |
| | | //聚合搜索则将结果放入过滤条件 |
| | | filterBuilder.must(functionScoreQueryBuilder); |
| | | filterBuilder.should(QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("goodsName", keyword).boost(10))); |