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;
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM