diff --git a/code/services-application/search-service/java/nu/marginalia/search/SearchOperator.java b/code/services-application/search-service/java/nu/marginalia/search/SearchOperator.java index dec6fd19..b2588472 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/SearchOperator.java +++ b/code/services-application/search-service/java/nu/marginalia/search/SearchOperator.java @@ -294,105 +294,4 @@ public class SearchOperator { } } - public DecoratedSearchResults doSearchFastTrack1(SearchParameters userParams) { - var queryParams = paramFactory.forRegularSearch(userParams); - QueryResponse queryResponse = queryClient.search(queryParams); - var queryResults = getResultsFromQuery(queryResponse).results; - - // Cluster the results based on the query response - List clusteredResults = SearchResultClusterer - .selectStrategy(queryResponse) - .clusterResults(queryResults, 25); - - String focusDomain = queryResponse.domain(); - int focusDomainId = (focusDomain == null || focusDomain.isBlank()) - ? -1 - : domainQueries.tryGetDomainId(new EdgeDomain(focusDomain)).orElse(0); - - List resultPages = IntStream.rangeClosed(1, queryResponse.totalPages()) - .mapToObj(number -> new ResultsPage( - number, - number == userParams.page(), - userParams.withPage(number).renderUrl() - )) - .toList(); - - // Return the results to the user - return DecoratedSearchResults.builder() - .params(userParams) - .problems(List.of()) - .evalResult("") - .results(clusteredResults) - .filters(new SearchFilters(userParams)) - .focusDomain(focusDomain) - .focusDomainId(focusDomainId) - .resultPages(resultPages) - .build(); - } - - public DecoratedSearchResults doSearchFastTrack2(SearchParameters userParams) { - var queryParams = paramFactory.forRegularSearch(userParams); - QueryResponse queryResponse = queryClient.search(queryParams); - var queryResults = getResultsFromQuery(queryResponse).results; - - // Cluster the results based on the query response - List clusteredResults = SearchResultClusterer - .noOpClustering(queryResults, queryResults.size()); - - String focusDomain = queryResponse.domain(); - int focusDomainId = (focusDomain == null || focusDomain.isBlank()) - ? -1 - : domainQueries.tryGetDomainId(new EdgeDomain(focusDomain)).orElse(0); - - List resultPages = IntStream.rangeClosed(1, queryResponse.totalPages()) - .mapToObj(number -> new ResultsPage( - number, - number == userParams.page(), - userParams.withPage(number).renderUrl() - )) - .toList(); - - // Return the results to the user - return DecoratedSearchResults.builder() - .params(userParams) - .problems(List.of()) - .evalResult("") - .results(clusteredResults) - .filters(new SearchFilters(userParams)) - .focusDomain(focusDomain) - .focusDomainId(focusDomainId) - .resultPages(resultPages) - .build(); - } - - - public DecoratedSearchResults doSearchFastTrack3(SearchParameters userParams) { - var queryParams = paramFactory.forRegularSearch(userParams); - QueryResponse queryResponse = queryClient.search(queryParams); - var queryResults = getResultsFromQuery(queryResponse).results; - - // Cluster the results based on the query response - List clusteredResults = SearchResultClusterer - .noOpClustering(queryResults, queryResults.size()); - - List resultPages = IntStream.rangeClosed(1, queryResponse.totalPages()) - .mapToObj(number -> new ResultsPage( - number, - number == userParams.page(), - userParams.withPage(number).renderUrl() - )) - .toList(); - - // Return the results to the user - return DecoratedSearchResults.builder() - .params(userParams) - .problems(List.of()) - .evalResult("") - .results(clusteredResults) - .filters(new SearchFilters(userParams)) - .focusDomain(null) - .focusDomainId(-1) - .resultPages(resultPages) - .build(); - } } diff --git a/code/services-application/search-service/java/nu/marginalia/search/SearchResultClusterer.java b/code/services-application/search-service/java/nu/marginalia/search/SearchResultClusterer.java index 35975c55..4e4cd086 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/SearchResultClusterer.java +++ b/code/services-application/search-service/java/nu/marginalia/search/SearchResultClusterer.java @@ -17,13 +17,13 @@ public class SearchResultClusterer { public static SearchResultClusterStrategy selectStrategy(QueryResponse response) { if (response.domain() != null && !response.domain().isBlank()) - return SearchResultClusterer::noOpClustering; + return SearchResultClusterer::noOp; return SearchResultClusterer::byDomain; } /** No clustering, just return the results as is */ - public static List noOpClustering(List results, int total) { + private static List noOp(List results, int total) { if (results.isEmpty()) return List.of(); diff --git a/code/services-application/search-service/java/nu/marginalia/search/command/SearchParameters.java b/code/services-application/search-service/java/nu/marginalia/search/command/SearchParameters.java index 832bdfb3..d507c44c 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/command/SearchParameters.java +++ b/code/services-application/search-service/java/nu/marginalia/search/command/SearchParameters.java @@ -21,8 +21,7 @@ public record SearchParameters(WebsiteUrl url, SearchTitleParameter searchTitle, SearchAdtechParameter adtech, boolean newFilter, - int page, - int debug + int page ) { public static SearchParameters defaultsForQuery(WebsiteUrl url, String query, int page) { @@ -35,8 +34,7 @@ public record SearchParameters(WebsiteUrl url, SearchTitleParameter.DEFAULT, SearchAdtechParameter.DEFAULT, false, - page, - 0); + page); } public String profileStr() { @@ -44,30 +42,30 @@ public record SearchParameters(WebsiteUrl url, } public SearchParameters withProfile(SearchProfile profile) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page); } public SearchParameters withJs(SearchJsParameter js) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page); } public SearchParameters withAdtech(SearchAdtechParameter adtech) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page); } public SearchParameters withRecent(SearchRecentParameter recent) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, true, page); } public SearchParameters withTitle(SearchTitleParameter title) { - return new SearchParameters(url, query, profile, js, recent, title, adtech, true, page, debug); + return new SearchParameters(url, query, profile, js, recent, title, adtech, true, page); } public SearchParameters withPage(int page) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, false, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, false, page); } public SearchParameters withQuery(String query) { - return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, false, page, debug); + return new SearchParameters(url, query, profile, js, recent, searchTitle, adtech, false, page); } public String renderUrlWithoutSiteFocus() { diff --git a/code/services-application/search-service/java/nu/marginalia/search/command/commands/SearchCommand.java b/code/services-application/search-service/java/nu/marginalia/search/command/commands/SearchCommand.java index 2e824e86..419bf394 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/command/commands/SearchCommand.java +++ b/code/services-application/search-service/java/nu/marginalia/search/command/commands/SearchCommand.java @@ -3,52 +3,34 @@ package nu.marginalia.search.command.commands; import com.google.inject.Inject; import io.jooby.MapModelAndView; import io.jooby.ModelAndView; +import nu.marginalia.search.JteRenderer; import nu.marginalia.search.SearchOperator; import nu.marginalia.search.command.SearchCommandInterface; import nu.marginalia.search.command.SearchParameters; import nu.marginalia.search.model.DecoratedSearchResults; import nu.marginalia.search.model.NavbarModel; +import java.io.IOException; import java.util.Map; import java.util.Optional; public class SearchCommand implements SearchCommandInterface { private final SearchOperator searchOperator; + private final JteRenderer jteRenderer; @Inject - public SearchCommand(SearchOperator searchOperator) { + public SearchCommand(SearchOperator searchOperator, + JteRenderer jteRenderer) throws IOException { this.searchOperator = searchOperator; + this.jteRenderer = jteRenderer; } @Override public Optional> process(SearchParameters parameters) throws InterruptedException { - if (parameters.debug() == 0) { - DecoratedSearchResults results = searchOperator.doSearch(parameters); - return Optional.of(new MapModelAndView("serp/main.jte", - Map.of("results", results, "navbar", NavbarModel.SEARCH) - )); - } - else if (parameters.debug() == 1) { - DecoratedSearchResults results = searchOperator.doSearchFastTrack1(parameters); - return Optional.of(new MapModelAndView("serp/main.jte", - Map.of("results", results, "navbar", NavbarModel.SEARCH) - )); - } - else if (parameters.debug() == 2) { - DecoratedSearchResults results = searchOperator.doSearchFastTrack2(parameters); - return Optional.of(new MapModelAndView("serp/main.jte", - Map.of("results", results, "navbar", NavbarModel.SEARCH) - )); - } - else if (parameters.debug() == 3) { - DecoratedSearchResults results = searchOperator.doSearchFastTrack3(parameters); - return Optional.of(new MapModelAndView("serp/main.jte", - Map.of("results", results, "navbar", NavbarModel.SEARCH) - )); - } - else { - return Optional.empty(); - } + DecoratedSearchResults results = searchOperator.doSearch(parameters); + return Optional.of(new MapModelAndView("serp/main.jte", + Map.of("results", results, "navbar", NavbarModel.SEARCH) + )); } } diff --git a/code/services-application/search-service/java/nu/marginalia/search/model/SearchFilters.java b/code/services-application/search-service/java/nu/marginalia/search/model/SearchFilters.java index b15108b7..207d6404 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/model/SearchFilters.java +++ b/code/services-application/search-service/java/nu/marginalia/search/model/SearchFilters.java @@ -60,8 +60,7 @@ public class SearchFilters { SearchTitleParameter.DEFAULT, SearchAdtechParameter.DEFAULT, false, - 1, - 0)); + 1)); } public SearchFilters(SearchParameters parameters) { diff --git a/code/services-application/search-service/java/nu/marginalia/search/svc/SearchQueryService.java b/code/services-application/search-service/java/nu/marginalia/search/svc/SearchQueryService.java index 7e231b11..b2f1a32b 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/svc/SearchQueryService.java +++ b/code/services-application/search-service/java/nu/marginalia/search/svc/SearchQueryService.java @@ -39,8 +39,7 @@ public class SearchQueryService { @QueryParam String recent, @QueryParam String searchTitle, @QueryParam String adtech, - @QueryParam Integer page, - @QueryParam Integer debug + @QueryParam Integer page ) { try { SearchParameters parameters = new SearchParameters(websiteUrl, @@ -51,9 +50,7 @@ public class SearchQueryService { SearchTitleParameter.parse(searchTitle), SearchAdtechParameter.parse(adtech), false, - Objects.requireNonNullElse(page,1), - Objects.requireNonNullElse(debug,0) - ); + Objects.requireNonNullElse(page,1)); return searchCommandEvaulator.eval(parameters); }