private static void setPagination(SearchOptions options, SearchRequestBuilder esSearch) { esSearch.setFrom(options.getOffset()); esSearch.setSize(options.getLimit()); }
private static void configurePagination(SearchOptions options, SearchRequestBuilder esSearch) { esSearch.setFrom(options.getOffset()).setSize(options.getLimit()); }
public SearchOptions writeJson(JsonWriter json, long totalHits) { json.prop("total", totalHits); json.prop(WebService.Param.PAGE, getPage()); json.prop(WebService.Param.PAGE_SIZE, getLimit()); return this; } }
private static void writeStatistics(SearchResponse.Builder response, SearchResult searchResult, SearchOptions context) { response.setTotal(searchResult.total); response.setP(context.getPage()); response.setPs(context.getLimit()); }
private List<CustomMeasureDto> searchCustomMeasures(DbSession dbSession, ComponentDto project, SearchOptions searchOptions) { return dbClient.customMeasureDao().selectByComponentUuid(dbSession, project.uuid(), searchOptions.getOffset(), searchOptions.getLimit()); }
@Test public void use_max_limit_if_negative() { SearchOptions options = new SearchOptions().setPage(2, -1); assertThat(options.getLimit()).isEqualTo(SearchOptions.MAX_LIMIT); }
@Test public void page_starts_at_one() { SearchOptions options = new SearchOptions().setPage(1, 10); assertThat(options.getLimit()).isEqualTo(10); assertThat(options.getOffset()).isEqualTo(0); assertThat(options.getPage()).isEqualTo(1); }
@Test public void page_shortcut_for_limit_and_offset() { SearchOptions options = new SearchOptions().setPage(3, 10); assertThat(options.getLimit()).isEqualTo(10); assertThat(options.getOffset()).isEqualTo(20); }
@Test public void with_zero_page_size() { SearchOptions options = new SearchOptions().setPage(1, 0); assertThat(options.getLimit()).isEqualTo(SearchOptions.MAX_LIMIT); assertThat(options.getOffset()).isEqualTo(0); assertThat(options.getPage()).isEqualTo(1); }
@Test public void max_page_size() { SearchOptions options = new SearchOptions().setPage(3, SearchOptions.MAX_LIMIT + 10); assertThat(options.getOffset()).isEqualTo(SearchOptions.MAX_LIMIT * 2); assertThat(options.getLimit()).isEqualTo(SearchOptions.MAX_LIMIT); }
@Test public void defaults() { SearchOptions options = new SearchOptions(); assertThat(options.getFacets()).isEmpty(); assertThat(options.getFields()).isEmpty(); assertThat(options.getOffset()).isEqualTo(0); assertThat(options.getLimit()).isEqualTo(10); assertThat(options.getPage()).isEqualTo(1); }
private static SearchOptions buildSearchOptions(SearchRequest request) { SearchOptions context = loadCommonContext(request); SearchOptions searchOptions = new SearchOptions() .setLimit(context.getLimit()) .setOffset(context.getOffset()); if (context.getFacets().contains(RuleIndex.FACET_OLD_DEFAULT)) { searchOptions.addFacets(DEFAULT_FACETS); } else { searchOptions.addFacets(context.getFacets()); } return searchOptions; }
Paging paging = forPageIndex(options.getPage()).withPageSize(options.getLimit()).andTotal((int) result.getHits().getTotalHits()); return searchResponseFormat.formatSearch(additionalFields, data, paging, facets);
public SearchIdResult<String> search(ProjectMeasuresQuery query, SearchOptions searchOptions) { SearchRequestBuilder requestBuilder = client .prepareSearch(INDEX_TYPE_PROJECT_MEASURES) .setFetchSource(false) .setFrom(searchOptions.getOffset()) .setSize(searchOptions.getLimit()); BoolQueryBuilder esFilter = boolQuery(); Map<String, QueryBuilder> filters = createFilters(query); filters.values().forEach(esFilter::must); requestBuilder.setQuery(esFilter); addFacets(requestBuilder, searchOptions, filters, query); addSort(query, requestBuilder); return new SearchIdResult<>(requestBuilder.get(), id -> id, system2.getDefaultTimeZone()); }
public SearchResult<UserDoc> search(UserQuery userQuery, SearchOptions options) { SearchRequestBuilder request = esClient.prepareSearch(UserIndexDefinition.INDEX_TYPE_USER) .setSize(options.getLimit()) .setFrom(options.getOffset()) .addSort(FIELD_NAME, SortOrder.ASC); BoolQueryBuilder filter = boolQuery().must(termQuery(FIELD_ACTIVE, true)); userQuery.getOrganizationUuid() .ifPresent(o -> filter.must(termQuery(FIELD_ORGANIZATION_UUIDS, o))); userQuery.getExcludedOrganizationUuid() .ifPresent(o -> filter.mustNot(termQuery(FIELD_ORGANIZATION_UUIDS, o))); QueryBuilder esQuery = matchAllQuery(); Optional<String> textQuery = userQuery.getTextQuery(); if (textQuery.isPresent()) { esQuery = QueryBuilders.multiMatchQuery(textQuery.get(), FIELD_LOGIN, USER_SEARCH_GRAMS_ANALYZER.subField(FIELD_LOGIN), FIELD_NAME, USER_SEARCH_GRAMS_ANALYZER.subField(FIELD_NAME), FIELD_EMAIL, USER_SEARCH_GRAMS_ANALYZER.subField(FIELD_EMAIL)) .operator(Operator.AND); } request.setQuery(boolQuery().must(esQuery).filter(filter)); return new SearchResult<>(request.get(), UserDoc::new, system2.getDefaultTimeZone()); }
@Override public void handle(Request request, Response response) throws Exception { SearchOptions searchOptions = new SearchOptions() .setPage(request.mandatoryParamAsInt(Param.PAGE), request.mandatoryParamAsInt(Param.PAGE_SIZE)); Boolean isCustom = request.paramAsBoolean(PARAM_IS_CUSTOM); try (DbSession dbSession = dbClient.openSession(false)) { List<MetricDto> metrics = dbClient.metricDao().selectEnabled(dbSession, isCustom, searchOptions.getOffset(), searchOptions.getLimit()); int nbMetrics = dbClient.metricDao().countEnabled(dbSession, isCustom); JsonWriter json = response.newJsonWriter(); json.beginObject(); Set<String> desiredFields = desiredFields(request.paramAsStrings(Param.FIELDS)); writeMetrics(json, metrics, desiredFields); searchOptions.writeJson(json, nbMetrics); json.endObject(); json.close(); } }
@Override public void handle(Request request, Response response) throws Exception { userSession.checkLoggedIn(); SearchOptions searchOptions = new SearchOptions() .setPage(request.mandatoryParamAsInt(Param.PAGE), request.mandatoryParamAsInt(Param.PAGE_SIZE)); Set<String> desiredFields = fieldsToReturn(request.paramAsStrings(Param.FIELDS)); String query = request.param(Param.TEXT_QUERY); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = getOrganization(dbSession, request); userSession.checkPermission(ADMINISTER, organization); long nbOfProjects = dbClient.componentDao().countGhostProjects(dbSession, organization.getUuid(), query); List<ComponentDto> projects = dbClient.componentDao().selectGhostProjects(dbSession, organization.getUuid(), query, searchOptions.getOffset(), searchOptions.getLimit()); try (JsonWriter json = response.newJsonWriter()) { json.beginObject(); writeProjects(json, projects, desiredFields); searchOptions.writeJson(json, nbOfProjects); json.endObject(); } } }
public SearchIdResult<String> search(ComponentQuery query, SearchOptions searchOptions) { SearchRequestBuilder requestBuilder = client .prepareSearch(INDEX_TYPE_COMPONENT) .setFetchSource(false) .setFrom(searchOptions.getOffset()) .setSize(searchOptions.getLimit()); BoolQueryBuilder esQuery = boolQuery(); esQuery.filter(authorizationTypeSupport.createQueryFilter()); setNullable(query.getQuery(), q -> { ComponentTextSearchQuery componentTextSearchQuery = ComponentTextSearchQuery.builder() .setQueryText(q) .setFieldKey(FIELD_KEY) .setFieldName(FIELD_NAME) .build(); esQuery.must(ComponentTextSearchQueryFactory.createQuery(componentTextSearchQuery, ComponentTextSearchFeatureRepertoire.values())); }); setEmptiable(query.getQualifiers(), q -> esQuery.must(termsQuery(FIELD_QUALIFIER, q))); setNullable(query.getLanguage(), l -> esQuery.must(termQuery(FIELD_LANGUAGE, l))); setNullable(query.getOrganizationUuid(), o -> esQuery.must(termQuery(FIELD_ORGANIZATION_UUID, o))); requestBuilder.setQuery(esQuery); requestBuilder.addSort(SORTABLE_ANALYZER.subField(FIELD_NAME), SortOrder.ASC); return new SearchIdResult<>(requestBuilder.get(), id -> id, system2.getDefaultTimeZone()); }
private static SearchOptions buildSearchOptions(SearchRequest request) { SearchOptions context = loadCommonContext(request); SearchOptions searchOptions = new SearchOptions() .setLimit(context.getLimit()) .setOffset(context.getOffset()); if (context.getFacets().contains(RuleIndex.FACET_OLD_DEFAULT)) { searchOptions.addFacets(DEFAULT_FACETS); } else { searchOptions.addFacets(context.getFacets()); } return searchOptions; }