diff --git a/src/main/java/org/codelibs/fess/Constants.java b/src/main/java/org/codelibs/fess/Constants.java index 17853a6d1..e8dfeef97 100644 --- a/src/main/java/org/codelibs/fess/Constants.java +++ b/src/main/java/org/codelibs/fess/Constants.java @@ -400,6 +400,8 @@ public class Constants extends CoreLibConstants { public static final String REQUEST_LANGUAGES = "requestLanguages"; + public static final String REQUEST_PAGE_SIZE = "requestPageSize"; + public static final String SEARCH_PREFERENCE_LOCAL = "_local"; public static final String GSA_API_VERSION = "3.2"; diff --git a/src/main/java/org/codelibs/fess/helper/SearchHelper.java b/src/main/java/org/codelibs/fess/helper/SearchHelper.java index 6e32ea1c8..ca5440d96 100644 --- a/src/main/java/org/codelibs/fess/helper/SearchHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SearchHelper.java @@ -162,13 +162,16 @@ public class SearchHelper { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final QueryHelper queryHelper = ComponentUtil.getQueryHelper(); final QueryFieldConfig queryFieldConfig = ComponentUtil.getQueryFieldConfig(); + final int pageSize = params.getPageSize(); + LaRequestUtil.getOptionalRequest().ifPresent(request -> { + request.setAttribute(Constants.REQUEST_PAGE_SIZE, pageSize); + }); return ComponentUtil.getSearchEngineClient().search(fessConfig.getIndexDocumentSearchIndex(), searchRequestBuilder -> { queryHelper.processSearchPreference(searchRequestBuilder, userBean, query); - return SearchConditionBuilder.builder(searchRequestBuilder).query(query).offset(params.getStartPosition()) - .size(params.getPageSize()).facetInfo(params.getFacetInfo()).geoInfo(params.getGeoInfo()) - .highlightInfo(params.getHighlightInfo()).similarDocHash(params.getSimilarDocHash()) - .responseFields(queryFieldConfig.getResponseFields()).searchRequestType(params.getType()) - .trackTotalHits(params.getTrackTotalHits()).build(); + return SearchConditionBuilder.builder(searchRequestBuilder).query(query).offset(params.getStartPosition()).size(pageSize) + .facetInfo(params.getFacetInfo()).geoInfo(params.getGeoInfo()).highlightInfo(params.getHighlightInfo()) + .similarDocHash(params.getSimilarDocHash()).responseFields(queryFieldConfig.getResponseFields()) + .searchRequestType(params.getType()).trackTotalHits(params.getTrackTotalHits()).build(); }, (searchRequestBuilder, execTime, searchResponse) -> { searchResponse.ifPresent(r -> { if (r.getTotalShards() != r.getSuccessfulShards() && fessConfig.isQueryTimeoutLogging()) {