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