dev change to visual_matches engine
Test Workflow / test (push) Successful in 3s

This commit is contained in:
vladp
2026-02-12 11:58:05 +07:00
parent 8a2be0d310
commit fb2ac0cf03
2 changed files with 140 additions and 15 deletions
@@ -1,5 +1,6 @@
package ru.soune.nocopy.handler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -20,10 +21,7 @@ import ru.soune.nocopy.service.tariff.TariffConstants;
import ru.soune.nocopy.service.tariff.TariffInfoService;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeoutException;
@Slf4j
@@ -90,22 +88,45 @@ public class ImageFoundRequestHandler implements RequestHandler {
checkCounterService.incrementCheckCount(fileEntity.getUserId(), fileEntity.getMimeType());
int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
YandexSearchResponse yandexSearchResponse = mapper.mapToYandexResponse(searchResponseYandex, page, 5,
List<YandexSearchResponse.ImageResult> allYandexImages = mapper.getAllImagesWithoutPagination(searchResponseYandex,
"visual_matches");
YandexSearchResponse googleSearchResponse = mapper.mapToYandexResponse(searchResponseGoogle, page, 5,
List<YandexSearchResponse.ImageResult> allGoogleImages = mapper.getAllImagesWithoutPagination(searchResponseGoogle,
"exact_matches");
int totalSize = yandexSearchResponse.getImages().size() + googleSearchResponse.getImages().size();
List<YandexSearchResponse.ImageResult> results = new ArrayList<>(totalSize);
results.addAll(yandexSearchResponse.getImages());
results.addAll(googleSearchResponse.getImages());
List<YandexSearchResponse.ImageResult> allUniqueImages = mapper.removeDuplicateUrls(allYandexImages, allGoogleImages);
yandexSearchResponse.setImages(results);
yandexSearchResponse.setTotalResults(totalSize);
int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
int pageSize = 5;
List<YandexSearchResponse.ImageResult> pagedResults = mapper.paginateResults(allUniqueImages, page,
pageSize * 2);
YandexSearchResponse finalResponse = new YandexSearchResponse();
finalResponse.setImages(pagedResults);
finalResponse.setPage(page);
finalResponse.setPageSize(pageSize * 2);
finalResponse.setTotalResults(allUniqueImages.size());
finalResponse.setTotalPages((int) Math.ceil((double) allUniqueImages.size() / (pageSize * 2)));
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
MessageCode.SUCCESS.getDescription(), yandexSearchResponse);
MessageCode.SUCCESS.getDescription(), finalResponse);
// int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
//
// YandexSearchResponse yandexSearchResponse = mapper.mapToYandexResponse(searchResponseYandex, page, 5,
// "visual_matches");
// YandexSearchResponse googleSearchResponse = mapper.mapToYandexResponse(searchResponseGoogle, page, 5,
// "exact_matches");
//
// int totalSize = yandexSearchResponse.getImages().size() + googleSearchResponse.getImages().size();
// List<YandexSearchResponse.ImageResult> results = new ArrayList<>(totalSize);
// results.addAll(yandexSearchResponse.getImages());
// results.addAll(googleSearchResponse.getImages());
//
// yandexSearchResponse.setImages(results);
// yandexSearchResponse.setTotalResults(totalSize);
//
// return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
// MessageCode.SUCCESS.getDescription(), yandexSearchResponse);
}
}