diff --git a/code/services-application/search-service/src/main/java/nu/marginalia/search/svc/SearchQueryService.java b/code/services-application/search-service/src/main/java/nu/marginalia/search/svc/SearchQueryService.java index c23d5ae9..9836e6d2 100644 --- a/code/services-application/search-service/src/main/java/nu/marginalia/search/svc/SearchQueryService.java +++ b/code/services-application/search-service/src/main/java/nu/marginalia/search/svc/SearchQueryService.java @@ -52,15 +52,23 @@ public class SearchQueryService { } private SearchParameters parseParameters(Request request) { - final String queryParam = request.queryParams("query"); + try { + final String queryParam = request.queryParams("query"); + + if (null == queryParam || queryParam.isBlank()) { + throw new RedirectException(websiteUrl.url()); + } + + return new SearchParameters(queryParam.trim(), + SearchProfile.getSearchProfile(request.queryParams("profile")), + SearchJsParameter.parse(request.queryParams("js")), + SearchAdtechParameter.parse(request.queryParams("adtech"))); + } + catch (Exception ex) { + // Bots keep sending bad requests, suppress the error otherwise it will + // fill up the logs. - if (null == queryParam || queryParam.isBlank()) { throw new RedirectException(websiteUrl.url()); } - - return new SearchParameters(queryParam.trim(), - SearchProfile.getSearchProfile(request.queryParams("profile")), - SearchJsParameter.parse(request.queryParams("js")), - SearchAdtechParameter.parse(request.queryParams("adtech"))); } }