admin
2021-09-24 f788607ff771a47bc60d6a86e00b3433c40f3d2c
src/main/java/com/yeshi/buwan/service/imp/SearchService.java
@@ -290,18 +290,18 @@
    }
    public SearchResult searchAlbum(int videoType, String key, List<Long> resourceIds, int page, int pageSize) {
    public SearchResult searchAlbum(int videoType, String key, List<Long> resourceIds, int page, int pageSize, boolean fuzzy) {
        List<VideoInfo> localList = new ArrayList<>();
        //专辑视频集合
        Set<String> solrAlbumVids = new HashSet<>();
        SolrVideoSearchFilter filter = new SolrVideoSearchFilter();
        filter.setFuzzy(fuzzy);
        filter.setKey(key);
        if (videoType == Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) {
            filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""}));
            logger.info("高清搜索# key:{}", key);
        } else {
            List<String> rids = new ArrayList<>();
            for (Long rid : resourceIds) {
                rids.add(rid + "");
@@ -318,7 +318,7 @@
            albumCount = solrResultDTO.getTotalCount();
            for (SolrAlbumVideo sv : (List<SolrAlbumVideo>) solrResultDTO.getVideoList()) {
                VideoInfo video = VideoInfoFactory.create(sv);
                albumSet.add(video.getName() + "#" + video.getVideoType().getId());
                albumSet.add(video.getName() + "#" + video.getVideoType().getId() + "#" + video.getYear());
                video = loadAlbumData(video);
                localList.add(video);
                solrAlbumVids.add(video.getId());
@@ -342,14 +342,25 @@
                        i--;
                    }
                }
                for (InternetSearchVideo sv : isvList) {
                    VideoInfo video = VideoInfoFactory.create(sv);
                    video = loadAlbumData(video);
                    if (albumCount < 3) {
                        localList.add(video);
                    } else {
                        if (video.getName().equalsIgnoreCase(key))
                //精确匹配,不分词
                if (!fuzzy) {
                    for (InternetSearchVideo sv : isvList) {
                        VideoInfo video = VideoInfoFactory.create(sv);
                        video = loadAlbumData(video);
                        //第一个专辑数量
                        if (albumCount < 3) {
                            localList.add(video);
                        } else {
                            if (video.getName().equalsIgnoreCase(key))
                                localList.add(video);
                        }
                    }
                } else {
                    for (InternetSearchVideo sv : isvList) {
                        VideoInfo video = VideoInfoFactory.create(sv);
                        video = loadAlbumData(video);
                        localList.add(video);
                    }
                }
            }
@@ -451,7 +462,12 @@
            localList = new ArrayList<>();
            //先搜索专辑
            int pageSize = 20;
            SearchResult searchResult = searchAlbum(videoType, key, resourceList, page, pageSize);
            SearchResult searchResult = searchAlbum(videoType, key, resourceList, page, pageSize, false);
            if (page == 1 && (searchResult == null || searchResult.videoInfoList == null || searchResult.videoInfoList.size() == 0)) {
                searchResult = searchAlbum(videoType, key, resourceList, page, pageSize, true);
            }
            if (searchResult != null && searchResult.videoInfoList != null) {
                localList.addAll(searchResult.videoInfoList);
            }