ES-moreLikeThisQueryBuilder-文章推荐

    //获取推荐文章
    public Object getRecommendList2(String name) {
        
        NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = null;
        //(1)添加查询字段
        moreLikeThisQueryBuilder = QueryBuilders.moreLikeThisQuery("title","abstractStr");
        //(2)获取搜索次数最多的关键词
          List<String> keywordList = searchLogService.getSizeCount(name);
        for (String keyword : keywordList)//查询相应的文章
        {
            moreLikeThisQueryBuilder.addLikeText(keyword);//添加查询关键词
        }
        moreLikeThisQueryBuilder.minTermFreq(1);
        moreLikeThisQueryBuilder.minDocFreq(0);
        //(3)设置请求条件
        boolQueryBuilder.must(moreLikeThisQueryBuilder);
        boolQueryBuilder.must(QueryBuilders.termQuery("status", ArticleStatus.SUCCESS));
        queryBuilder.withQuery(boolQueryBuilder);
        //(4)设置分页
        PageRequest page = new PageRequest(0, 15);
        queryBuilder.withPageable(page);
        //(5)请求搜索
        List<Article> searchResponse = articleResponsitory.search(queryBuilder.build()).getContent();
        return searchResponse;
    }
原文地址:https://www.cnblogs.com/excellencesy/p/11898619.html