Search in sources :

Example 1 with ParsedStringTerms

use of org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms in project graylog2-server by Graylog2.

the class QuerySuggestionsES7 method suggest.

@Override
public SuggestionResponse suggest(SuggestionRequest req) {
    final Set<String> affectedIndices = indexLookup.indexNamesForStreamsInTimeRange(req.streams(), req.timerange());
    final TermSuggestionBuilder suggestionBuilder = SuggestBuilders.termSuggestion(req.field()).text(req.input()).size(req.size());
    final SearchSourceBuilder search = new SearchSourceBuilder().query(QueryBuilders.prefixQuery(req.field(), req.input())).size(0).aggregation(AggregationBuilders.terms("fieldvalues").field(req.field()).size(req.size())).suggest(new SuggestBuilder().addSuggestion("corrections", suggestionBuilder));
    try {
        final SearchResponse result = client.singleSearch(new SearchRequest(affectedIndices.toArray(new String[] {})).source(search), "Failed to execute aggregation");
        final ParsedStringTerms fieldValues = result.getAggregations().get("fieldvalues");
        final List<SuggestionEntry> entries = fieldValues.getBuckets().stream().map(b -> new SuggestionEntry(b.getKeyAsString(), b.getDocCount())).collect(Collectors.toList());
        if (!entries.isEmpty()) {
            return SuggestionResponse.forSuggestions(req.field(), req.input(), entries, fieldValues.getSumOfOtherDocCounts());
        } else {
            TermSuggestion suggestion = result.getSuggest().getSuggestion("corrections");
            final List<SuggestionEntry> corrections = suggestion.getEntries().stream().flatMap(e -> e.getOptions().stream()).map(o -> new SuggestionEntry(o.getText().string(), o.getFreq())).collect(Collectors.toList());
            return SuggestionResponse.forSuggestions(req.field(), req.input(), corrections, null);
        }
    } catch (org.graylog.shaded.elasticsearch7.org.elasticsearch.ElasticsearchException exception) {
        final SuggestionError err = tryResponseException(exception).orElseGet(() -> parseException(exception));
        return SuggestionResponse.forError(req.field(), req.input(), err);
    }
}
Also used : TermSuggestionBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.term.TermSuggestionBuilder) SearchResponse(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchResponse) SearchSourceBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.builder.SearchSourceBuilder) ParsedStringTerms(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) SuggestBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.SuggestBuilder) SuggestionEntry(org.graylog.plugins.views.search.engine.suggestions.SuggestionEntry) SearchRequest(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest) Set(java.util.Set) TermSuggestion(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.term.TermSuggestion) SuggestionRequest(org.graylog.plugins.views.search.engine.suggestions.SuggestionRequest) Collectors(java.util.stream.Collectors) AggregationBuilders(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.AggregationBuilders) Inject(javax.inject.Inject) List(java.util.List) QuerySuggestionsService(org.graylog.plugins.views.search.engine.QuerySuggestionsService) ResponseError(org.graylog.storage.elasticsearch7.errors.ResponseError) Optional(java.util.Optional) SuggestBuilders(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.SuggestBuilders) SuggestionResponse(org.graylog.plugins.views.search.engine.suggestions.SuggestionResponse) IndexLookup(org.graylog.plugins.views.search.elasticsearch.IndexLookup) QueryBuilders(org.graylog.shaded.elasticsearch7.org.elasticsearch.index.query.QueryBuilders) SuggestionError(org.graylog.plugins.views.search.engine.suggestions.SuggestionError) SearchRequest(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest) ParsedStringTerms(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) SearchSourceBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.builder.SearchSourceBuilder) SearchResponse(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchResponse) SuggestBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.SuggestBuilder) SuggestionError(org.graylog.plugins.views.search.engine.suggestions.SuggestionError) TermSuggestion(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.term.TermSuggestion) TermSuggestionBuilder(org.graylog.shaded.elasticsearch7.org.elasticsearch.search.suggest.term.TermSuggestionBuilder) SuggestionEntry(org.graylog.plugins.views.search.engine.suggestions.SuggestionEntry)

Example 2 with ParsedStringTerms

use of org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms in project sonarqube by SonarSource.

the class IssueIndex method processSecurityReportCategorySearchResults.

private static SecurityStandardCategoryStatistics processSecurityReportCategorySearchResults(HasAggregations categoryBucket, String categoryName, @Nullable List<SecurityStandardCategoryStatistics> children) {
    List<? extends Terms.Bucket> severityBuckets = ((ParsedStringTerms) ((ParsedFilter) categoryBucket.getAggregations().get(AGG_VULNERABILITIES)).getAggregations().get(AGG_SEVERITIES)).getBuckets();
    long vulnerabilities = severityBuckets.stream().mapToLong(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue()).sum();
    // Worst severity having at least one issue
    OptionalInt severityRating = severityBuckets.stream().filter(b -> ((ParsedValueCount) b.getAggregations().get(AGG_COUNT)).getValue() != 0).mapToInt(b -> Severity.ALL.indexOf(b.getKeyAsString()) + 1).max();
    long toReviewSecurityHotspots = ((ParsedValueCount) ((ParsedFilter) categoryBucket.getAggregations().get(AGG_TO_REVIEW_SECURITY_HOTSPOTS)).getAggregations().get(AGG_COUNT)).getValue();
    long reviewedSecurityHotspots = ((ParsedValueCount) ((ParsedFilter) categoryBucket.getAggregations().get(AGG_REVIEWED_SECURITY_HOTSPOTS)).getAggregations().get(AGG_COUNT)).getValue();
    Optional<Double> percent = computePercent(toReviewSecurityHotspots, reviewedSecurityHotspots);
    Integer securityReviewRating = computeRating(percent.orElse(null)).getIndex();
    return new SecurityStandardCategoryStatistics(categoryName, vulnerabilities, severityRating, toReviewSecurityHotspots, reviewedSecurityHotspots, securityReviewRating, children);
}
Also used : Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) CWE(org.sonar.server.issue.index.IssueIndex.Facet.CWE) SumAggregationBuilder(org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder) PARAM_ASSIGNEES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ASSIGNEES) AUTHOR(org.sonar.server.issue.index.IssueIndex.Facet.AUTHOR) EsClient(org.sonar.server.es.EsClient) Collections.singletonList(java.util.Collections.singletonList) FIELD_ISSUE_KEY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_KEY) SimpleFieldFilterScope(org.sonar.server.es.searchrequest.TopAggregationDefinition.SimpleFieldFilterScope) SimpleFieldTopAggregationDefinition(org.sonar.server.es.searchrequest.SimpleFieldTopAggregationDefinition) LANGUAGES(org.sonar.server.issue.index.IssueIndex.Facet.LANGUAGES) PARAM_FILES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_FILES) Map(java.util.Map) FIELD_ISSUE_FUNC_CREATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CREATED_AT) FIELD_ISSUE_TAGS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TAGS) FIELD_ISSUE_RULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RULE_UUID) ParsedFilter(org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter) BucketOrder(org.elasticsearch.search.aggregations.BucketOrder) SEVERITIES(org.sonar.server.issue.index.IssueIndex.Facet.SEVERITIES) FIELD_ISSUE_SCOPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SCOPE) PARAM_SCOPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SCOPES) PARAM_STATUSES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_STATUSES) SANS_TOP_25(org.sonar.server.issue.index.IssueIndex.Facet.SANS_TOP_25) FIELD_ISSUE_CWE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_CWE) TYPE_ISSUE(org.sonar.server.issue.index.IssueIndexDefinition.TYPE_ISSUE) QueryBuilders.boolQuery(org.elasticsearch.index.query.QueryBuilders.boolQuery) PARAM_TYPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TYPES) Set(java.util.Set) FieldSortBuilder(org.elasticsearch.search.sort.FieldSortBuilder) FIELD_ISSUE_IS_MAIN_BRANCH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_IS_MAIN_BRANCH) FIELD_ISSUE_STATUS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_STATUS) ParsedMax(org.elasticsearch.search.aggregations.metrics.ParsedMax) Stream(java.util.stream.Stream) CREATED_AT(org.sonar.server.issue.index.IssueIndex.Facet.CREATED_AT) Min(org.elasticsearch.search.aggregations.metrics.Min) FILES(org.sonar.server.issue.index.IssueIndex.Facet.FILES) SecurityReviewRating.computePercent(org.sonar.server.security.SecurityReviewRating.computePercent) ViewIndexDefinition(org.sonar.server.view.index.ViewIndexDefinition) FIELD_ISSUE_ASSIGNEE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID) FIELD_ISSUE_LINE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LINE) PROJECT_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.PROJECT_UUIDS) TYPE_VIEW(org.sonar.server.view.index.ViewIndexDefinition.TYPE_VIEW) AuthorizationDoc(org.sonar.server.permission.index.AuthorizationDoc) Duration(org.joda.time.Duration) FIELD_ISSUE_BRANCH_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_BRANCH_UUID) FIELD_ISSUE_TYPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TYPE) QueryBuilders.rangeQuery(org.elasticsearch.index.query.QueryBuilders.rangeQuery) RULES(org.sonar.server.issue.index.IssueIndex.Facet.RULES) SearchRequest(org.elasticsearch.action.search.SearchRequest) STATUSES(org.sonar.server.issue.index.IssueIndex.Facet.STATUSES) ArrayList(java.util.ArrayList) RuleType(org.sonar.api.rules.RuleType) FIELD_ISSUE_VULNERABILITY_PROBABILITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_VULNERABILITY_PROBABILITY) PARAM_CREATED_AT(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CREATED_AT) OptionalLong(java.util.OptionalLong) FIELD_ISSUE_RESOLUTION(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RESOLUTION) FIELD_ISSUE_SEVERITY_VALUE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY_VALUE) Severity(org.sonar.api.rule.Severity) DateUtils(org.sonar.api.utils.DateUtils) WebAuthorizationTypeSupport(org.sonar.server.permission.index.WebAuthorizationTypeSupport) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.STICKY) FIELD_INDEX_TYPE(org.sonar.server.es.IndexType.FIELD_INDEX_TYPE) TermsAggregationBuilder(org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder) Nullable(javax.annotation.Nullable) FIELD_ISSUE_NEW_CODE_REFERENCE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_NEW_CODE_REFERENCE) PARAM_DIRECTORIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_DIRECTORIES) PARAM_RESOLUTIONS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RESOLUTIONS) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) PARAM_SEVERITIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SEVERITIES) QueryBuilders.matchAllQuery(org.elasticsearch.index.query.QueryBuilders.matchAllQuery) RequestFiltersComputer(org.sonar.server.es.searchrequest.RequestFiltersComputer) NON_STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.NON_STICKY) NO_OTHER_SUBAGGREGATION(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_OTHER_SUBAGGREGATION) PARAM_LANGUAGES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_LANGUAGES) ASSIGNED_TO_ME(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNED_TO_ME) FIELD_ISSUE_OWASP_TOP_10(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10) HasAggregations(org.elasticsearch.search.aggregations.HasAggregations) SANS_TOP_25_RISKY_RESOURCE(org.sonar.server.security.SecurityStandards.SANS_TOP_25_RISKY_RESOURCE) QueryBuilders.termQuery(org.elasticsearch.index.query.QueryBuilders.termQuery) PARAM_OWASP_TOP_10(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10) FIELD_ISSUE_FILE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FILE_PATH) Preconditions(com.google.common.base.Preconditions) FIELD_ISSUE_FUNC_CLOSED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CLOSED_AT) SecurityStandards(org.sonar.server.security.SecurityStandards) Date(java.util.Date) MODULE_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.MODULE_UUIDS) LongBounds(org.elasticsearch.search.aggregations.bucket.histogram.LongBounds) QueryBuilders(org.elasticsearch.index.query.QueryBuilders) OWASP_TOP_10(org.sonar.server.issue.index.IssueIndex.Facet.OWASP_TOP_10) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) BaseDoc(org.sonar.server.es.BaseDoc) FIELD_ISSUE_PROJECT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_PROJECT_UUID) PARAM_SONARSOURCE_SECURITY(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SONARSOURCE_SECURITY) SONARSOURCE_SECURITY(org.sonar.server.issue.index.IssueIndex.Facet.SONARSOURCE_SECURITY) FIELD_ISSUE_DIRECTORY_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_DIRECTORY_PATH) PARAM_AUTHOR(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_AUTHOR) SearchResponse(org.elasticsearch.action.search.SearchResponse) FIELD_ISSUE_AUTHOR_LOGIN(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_AUTHOR_LOGIN) TAGS(org.sonar.server.issue.index.IssueIndex.Facet.TAGS) DateHistogramInterval(org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval) SubAggregationHelper(org.sonar.server.es.searchrequest.SubAggregationHelper) FIELD_ISSUE_EFFORT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_EFFORT) System2(org.sonar.api.utils.System2) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) VULNERABILITY(org.sonar.api.rules.RuleType.VULNERABILITY) Collection(java.util.Collection) DIRECTORIES(org.sonar.server.issue.index.IssueIndex.Facet.DIRECTORIES) RESOLUTIONS(org.sonar.server.issue.index.IssueIndex.Facet.RESOLUTIONS) PARAM_SANS_TOP_25(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SANS_TOP_25) TopAggregationDefinition(org.sonar.server.es.searchrequest.TopAggregationDefinition) FilterAggregationBuilder(org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) Preconditions.checkState(com.google.common.base.Preconditions.checkState) Objects(java.util.Objects) TopAggregationHelper(org.sonar.server.es.searchrequest.TopAggregationHelper) BaseDoc.epochMillisToEpochSeconds(org.sonar.server.es.BaseDoc.epochMillisToEpochSeconds) ASSIGNEES(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNEES) List(java.util.List) SearchOptions(org.sonar.server.es.SearchOptions) SecurityReviewRating.computeRating(org.sonar.server.security.SecurityReviewRating.computeRating) MultiBucketsAggregation(org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation) AllFilters(org.sonar.server.es.searchrequest.RequestFiltersComputer.AllFilters) SCOPES(org.sonar.server.issue.index.IssueIndex.Facet.SCOPES) MoreCollectors.uniqueIndex(org.sonar.core.util.stream.MoreCollectors.uniqueIndex) Optional(java.util.Optional) BoolQueryBuilder(org.elasticsearch.index.query.BoolQueryBuilder) SQCategory(org.sonar.server.security.SecurityStandards.SQCategory) IntStream(java.util.stream.IntStream) IncludeExclude(org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude) FACET_MODE_EFFORT(org.sonarqube.ws.client.issue.IssuesWsParameters.FACET_MODE_EFFORT) AggregationBuilder(org.elasticsearch.search.aggregations.AggregationBuilder) CWES_BY_CWE_TOP_25(org.sonar.server.security.SecurityStandards.CWES_BY_CWE_TOP_25) PARAM_RULES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RULES) EsUtils.escapeSpecialRegexChars(org.sonar.server.es.EsUtils.escapeSpecialRegexChars) Sorting(org.sonar.server.es.Sorting) FIELD_ISSUE_MODULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_UUID) SANS_TOP_25_POROUS_DEFENSES(org.sonar.server.security.SecurityStandards.SANS_TOP_25_POROUS_DEFENSES) FIELD_ISSUE_MODULE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_PATH) OptionalInt(java.util.OptionalInt) EsUtils(org.sonar.server.es.EsUtils) FIELD_ISSUE_SEVERITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY) SECURITY_HOTSPOT(org.sonar.api.rules.RuleType.SECURITY_HOTSPOT) PARAM_TAGS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TAGS) FIELD_ISSUE_LANGUAGE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LANGUAGE) SANS_TOP_25_INSECURE_INTERACTION(org.sonar.server.security.SecurityStandards.SANS_TOP_25_INSECURE_INTERACTION) MoreCollectors(org.sonar.core.util.stream.MoreCollectors) FIELD_ISSUE_SANS_TOP_25(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SANS_TOP_25) QueryBuilders.termsQuery(org.elasticsearch.index.query.QueryBuilders.termsQuery) TYPES(org.sonar.server.issue.index.IssueIndex.Facet.TYPES) PARAM_CWE(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CWE) FIELD_ISSUE_FUNC_UPDATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_UPDATED_AT) FIELD_ISSUE_SQ_SECURITY_CATEGORY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SQ_SECURITY_CATEGORY) FIELD_ISSUE_COMPONENT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_COMPONENT_UUID) TermsLookup(org.elasticsearch.indices.TermsLookup) AggregationBuilders(org.elasticsearch.search.aggregations.AggregationBuilders) PeriodStart(org.sonar.server.issue.index.IssueQuery.PeriodStart) ParsedValueCount(org.elasticsearch.search.aggregations.metrics.ParsedValueCount) Consumer(java.util.function.Consumer) Collectors.toList(java.util.stream.Collectors.toList) Issue(org.sonar.api.issue.Issue) NO_EXTRA_FILTER(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_EXTRA_FILTER) UserSession(org.sonar.server.user.UserSession) Collections(java.util.Collections) CheckForNull(javax.annotation.CheckForNull) IndexType(org.sonar.server.es.IndexType) QueryBuilders.existsQuery(org.elasticsearch.index.query.QueryBuilders.existsQuery) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) ParsedFilter(org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter) ParsedValueCount(org.elasticsearch.search.aggregations.metrics.ParsedValueCount) OptionalInt(java.util.OptionalInt) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms)

Example 3 with ParsedStringTerms

use of org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms in project sonarqube by SonarSource.

the class IssueIndex method searchProjectStatistics.

public List<ProjectStatistics> searchProjectStatistics(List<String> projectUuids, List<Long> froms, @Nullable String assigneeUuid) {
    checkState(projectUuids.size() == froms.size(), "Expected same size for projectUuids (had size %s) and froms (had size %s)", projectUuids.size(), froms.size());
    if (projectUuids.isEmpty()) {
        return Collections.emptyList();
    }
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(boolQuery().mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)).filter(termQuery(FIELD_ISSUE_ASSIGNEE_UUID, assigneeUuid)).mustNot(termQuery(FIELD_ISSUE_TYPE, SECURITY_HOTSPOT.name()))).size(0);
    IntStream.range(0, projectUuids.size()).forEach(i -> {
        String projectUuid = projectUuids.get(i);
        long from = froms.get(i);
        sourceBuilder.aggregation(AggregationBuilders.filter(projectUuid, boolQuery().filter(termQuery(FIELD_ISSUE_PROJECT_UUID, projectUuid)).filter(rangeQuery(FIELD_ISSUE_FUNC_CREATED_AT).gte(epochMillisToEpochSeconds(from)))).subAggregation(AggregationBuilders.terms("branchUuid").field(FIELD_ISSUE_BRANCH_UUID).subAggregation(AggregationBuilders.count(AGG_COUNT).field(FIELD_ISSUE_KEY)).subAggregation(AggregationBuilders.max("maxFuncCreatedAt").field(FIELD_ISSUE_FUNC_CREATED_AT))));
    });
    SearchRequest requestBuilder = EsClient.prepareSearch(TYPE_ISSUE.getMainType());
    requestBuilder.source(sourceBuilder);
    SearchResponse response = client.search(requestBuilder);
    return response.getAggregations().asList().stream().map(x -> (ParsedFilter) x).flatMap(projectBucket -> ((ParsedStringTerms) projectBucket.getAggregations().get("branchUuid")).getBuckets().stream().flatMap(branchBucket -> {
        long count = ((ParsedValueCount) branchBucket.getAggregations().get(AGG_COUNT)).getValue();
        if (count < 1L) {
            return Stream.empty();
        }
        long lastIssueDate = (long) ((ParsedMax) branchBucket.getAggregations().get("maxFuncCreatedAt")).getValue();
        return Stream.of(new ProjectStatistics(branchBucket.getKeyAsString(), count, lastIssueDate));
    })).collect(MoreCollectors.toList(projectUuids.size()));
}
Also used : Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) CWE(org.sonar.server.issue.index.IssueIndex.Facet.CWE) SumAggregationBuilder(org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder) PARAM_ASSIGNEES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ASSIGNEES) AUTHOR(org.sonar.server.issue.index.IssueIndex.Facet.AUTHOR) EsClient(org.sonar.server.es.EsClient) Collections.singletonList(java.util.Collections.singletonList) FIELD_ISSUE_KEY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_KEY) SimpleFieldFilterScope(org.sonar.server.es.searchrequest.TopAggregationDefinition.SimpleFieldFilterScope) SimpleFieldTopAggregationDefinition(org.sonar.server.es.searchrequest.SimpleFieldTopAggregationDefinition) LANGUAGES(org.sonar.server.issue.index.IssueIndex.Facet.LANGUAGES) PARAM_FILES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_FILES) Map(java.util.Map) FIELD_ISSUE_FUNC_CREATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CREATED_AT) FIELD_ISSUE_TAGS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TAGS) FIELD_ISSUE_RULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RULE_UUID) ParsedFilter(org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter) BucketOrder(org.elasticsearch.search.aggregations.BucketOrder) SEVERITIES(org.sonar.server.issue.index.IssueIndex.Facet.SEVERITIES) FIELD_ISSUE_SCOPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SCOPE) PARAM_SCOPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SCOPES) PARAM_STATUSES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_STATUSES) SANS_TOP_25(org.sonar.server.issue.index.IssueIndex.Facet.SANS_TOP_25) FIELD_ISSUE_CWE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_CWE) TYPE_ISSUE(org.sonar.server.issue.index.IssueIndexDefinition.TYPE_ISSUE) QueryBuilders.boolQuery(org.elasticsearch.index.query.QueryBuilders.boolQuery) PARAM_TYPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TYPES) Set(java.util.Set) FieldSortBuilder(org.elasticsearch.search.sort.FieldSortBuilder) FIELD_ISSUE_IS_MAIN_BRANCH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_IS_MAIN_BRANCH) FIELD_ISSUE_STATUS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_STATUS) ParsedMax(org.elasticsearch.search.aggregations.metrics.ParsedMax) Stream(java.util.stream.Stream) CREATED_AT(org.sonar.server.issue.index.IssueIndex.Facet.CREATED_AT) Min(org.elasticsearch.search.aggregations.metrics.Min) FILES(org.sonar.server.issue.index.IssueIndex.Facet.FILES) SecurityReviewRating.computePercent(org.sonar.server.security.SecurityReviewRating.computePercent) ViewIndexDefinition(org.sonar.server.view.index.ViewIndexDefinition) FIELD_ISSUE_ASSIGNEE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID) FIELD_ISSUE_LINE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LINE) PROJECT_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.PROJECT_UUIDS) TYPE_VIEW(org.sonar.server.view.index.ViewIndexDefinition.TYPE_VIEW) AuthorizationDoc(org.sonar.server.permission.index.AuthorizationDoc) Duration(org.joda.time.Duration) FIELD_ISSUE_BRANCH_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_BRANCH_UUID) FIELD_ISSUE_TYPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TYPE) QueryBuilders.rangeQuery(org.elasticsearch.index.query.QueryBuilders.rangeQuery) RULES(org.sonar.server.issue.index.IssueIndex.Facet.RULES) SearchRequest(org.elasticsearch.action.search.SearchRequest) STATUSES(org.sonar.server.issue.index.IssueIndex.Facet.STATUSES) ArrayList(java.util.ArrayList) RuleType(org.sonar.api.rules.RuleType) FIELD_ISSUE_VULNERABILITY_PROBABILITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_VULNERABILITY_PROBABILITY) PARAM_CREATED_AT(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CREATED_AT) OptionalLong(java.util.OptionalLong) FIELD_ISSUE_RESOLUTION(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RESOLUTION) FIELD_ISSUE_SEVERITY_VALUE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY_VALUE) Severity(org.sonar.api.rule.Severity) DateUtils(org.sonar.api.utils.DateUtils) WebAuthorizationTypeSupport(org.sonar.server.permission.index.WebAuthorizationTypeSupport) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.STICKY) FIELD_INDEX_TYPE(org.sonar.server.es.IndexType.FIELD_INDEX_TYPE) TermsAggregationBuilder(org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder) Nullable(javax.annotation.Nullable) FIELD_ISSUE_NEW_CODE_REFERENCE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_NEW_CODE_REFERENCE) PARAM_DIRECTORIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_DIRECTORIES) PARAM_RESOLUTIONS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RESOLUTIONS) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) PARAM_SEVERITIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SEVERITIES) QueryBuilders.matchAllQuery(org.elasticsearch.index.query.QueryBuilders.matchAllQuery) RequestFiltersComputer(org.sonar.server.es.searchrequest.RequestFiltersComputer) NON_STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.NON_STICKY) NO_OTHER_SUBAGGREGATION(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_OTHER_SUBAGGREGATION) PARAM_LANGUAGES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_LANGUAGES) ASSIGNED_TO_ME(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNED_TO_ME) FIELD_ISSUE_OWASP_TOP_10(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10) HasAggregations(org.elasticsearch.search.aggregations.HasAggregations) SANS_TOP_25_RISKY_RESOURCE(org.sonar.server.security.SecurityStandards.SANS_TOP_25_RISKY_RESOURCE) QueryBuilders.termQuery(org.elasticsearch.index.query.QueryBuilders.termQuery) PARAM_OWASP_TOP_10(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10) FIELD_ISSUE_FILE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FILE_PATH) Preconditions(com.google.common.base.Preconditions) FIELD_ISSUE_FUNC_CLOSED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CLOSED_AT) SecurityStandards(org.sonar.server.security.SecurityStandards) Date(java.util.Date) MODULE_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.MODULE_UUIDS) LongBounds(org.elasticsearch.search.aggregations.bucket.histogram.LongBounds) QueryBuilders(org.elasticsearch.index.query.QueryBuilders) OWASP_TOP_10(org.sonar.server.issue.index.IssueIndex.Facet.OWASP_TOP_10) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) BaseDoc(org.sonar.server.es.BaseDoc) FIELD_ISSUE_PROJECT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_PROJECT_UUID) PARAM_SONARSOURCE_SECURITY(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SONARSOURCE_SECURITY) SONARSOURCE_SECURITY(org.sonar.server.issue.index.IssueIndex.Facet.SONARSOURCE_SECURITY) FIELD_ISSUE_DIRECTORY_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_DIRECTORY_PATH) PARAM_AUTHOR(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_AUTHOR) SearchResponse(org.elasticsearch.action.search.SearchResponse) FIELD_ISSUE_AUTHOR_LOGIN(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_AUTHOR_LOGIN) TAGS(org.sonar.server.issue.index.IssueIndex.Facet.TAGS) DateHistogramInterval(org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval) SubAggregationHelper(org.sonar.server.es.searchrequest.SubAggregationHelper) FIELD_ISSUE_EFFORT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_EFFORT) System2(org.sonar.api.utils.System2) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) VULNERABILITY(org.sonar.api.rules.RuleType.VULNERABILITY) Collection(java.util.Collection) DIRECTORIES(org.sonar.server.issue.index.IssueIndex.Facet.DIRECTORIES) RESOLUTIONS(org.sonar.server.issue.index.IssueIndex.Facet.RESOLUTIONS) PARAM_SANS_TOP_25(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SANS_TOP_25) TopAggregationDefinition(org.sonar.server.es.searchrequest.TopAggregationDefinition) FilterAggregationBuilder(org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) Preconditions.checkState(com.google.common.base.Preconditions.checkState) Objects(java.util.Objects) TopAggregationHelper(org.sonar.server.es.searchrequest.TopAggregationHelper) BaseDoc.epochMillisToEpochSeconds(org.sonar.server.es.BaseDoc.epochMillisToEpochSeconds) ASSIGNEES(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNEES) List(java.util.List) SearchOptions(org.sonar.server.es.SearchOptions) SecurityReviewRating.computeRating(org.sonar.server.security.SecurityReviewRating.computeRating) MultiBucketsAggregation(org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation) AllFilters(org.sonar.server.es.searchrequest.RequestFiltersComputer.AllFilters) SCOPES(org.sonar.server.issue.index.IssueIndex.Facet.SCOPES) MoreCollectors.uniqueIndex(org.sonar.core.util.stream.MoreCollectors.uniqueIndex) Optional(java.util.Optional) BoolQueryBuilder(org.elasticsearch.index.query.BoolQueryBuilder) SQCategory(org.sonar.server.security.SecurityStandards.SQCategory) IntStream(java.util.stream.IntStream) IncludeExclude(org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude) FACET_MODE_EFFORT(org.sonarqube.ws.client.issue.IssuesWsParameters.FACET_MODE_EFFORT) AggregationBuilder(org.elasticsearch.search.aggregations.AggregationBuilder) CWES_BY_CWE_TOP_25(org.sonar.server.security.SecurityStandards.CWES_BY_CWE_TOP_25) PARAM_RULES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RULES) EsUtils.escapeSpecialRegexChars(org.sonar.server.es.EsUtils.escapeSpecialRegexChars) Sorting(org.sonar.server.es.Sorting) FIELD_ISSUE_MODULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_UUID) SANS_TOP_25_POROUS_DEFENSES(org.sonar.server.security.SecurityStandards.SANS_TOP_25_POROUS_DEFENSES) FIELD_ISSUE_MODULE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_PATH) OptionalInt(java.util.OptionalInt) EsUtils(org.sonar.server.es.EsUtils) FIELD_ISSUE_SEVERITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY) SECURITY_HOTSPOT(org.sonar.api.rules.RuleType.SECURITY_HOTSPOT) PARAM_TAGS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TAGS) FIELD_ISSUE_LANGUAGE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LANGUAGE) SANS_TOP_25_INSECURE_INTERACTION(org.sonar.server.security.SecurityStandards.SANS_TOP_25_INSECURE_INTERACTION) MoreCollectors(org.sonar.core.util.stream.MoreCollectors) FIELD_ISSUE_SANS_TOP_25(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SANS_TOP_25) QueryBuilders.termsQuery(org.elasticsearch.index.query.QueryBuilders.termsQuery) TYPES(org.sonar.server.issue.index.IssueIndex.Facet.TYPES) PARAM_CWE(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CWE) FIELD_ISSUE_FUNC_UPDATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_UPDATED_AT) FIELD_ISSUE_SQ_SECURITY_CATEGORY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SQ_SECURITY_CATEGORY) FIELD_ISSUE_COMPONENT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_COMPONENT_UUID) TermsLookup(org.elasticsearch.indices.TermsLookup) AggregationBuilders(org.elasticsearch.search.aggregations.AggregationBuilders) PeriodStart(org.sonar.server.issue.index.IssueQuery.PeriodStart) ParsedValueCount(org.elasticsearch.search.aggregations.metrics.ParsedValueCount) Consumer(java.util.function.Consumer) Collectors.toList(java.util.stream.Collectors.toList) Issue(org.sonar.api.issue.Issue) NO_EXTRA_FILTER(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_EXTRA_FILTER) UserSession(org.sonar.server.user.UserSession) Collections(java.util.Collections) CheckForNull(javax.annotation.CheckForNull) IndexType(org.sonar.server.es.IndexType) QueryBuilders.existsQuery(org.elasticsearch.index.query.QueryBuilders.existsQuery) SearchRequest(org.elasticsearch.action.search.SearchRequest) ParsedValueCount(org.elasticsearch.search.aggregations.metrics.ParsedValueCount) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) SearchResponse(org.elasticsearch.action.search.SearchResponse)

Example 4 with ParsedStringTerms

use of org.graylog.shaded.elasticsearch7.org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms in project sonarqube by SonarSource.

the class IssueIndex method searchBranchStatistics.

public List<PrStatistics> searchBranchStatistics(String projectUuid, List<String> branchUuids) {
    if (branchUuids.isEmpty()) {
        return Collections.emptyList();
    }
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(boolQuery().must(termsQuery(FIELD_ISSUE_BRANCH_UUID, branchUuids)).mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)).must(termQuery(FIELD_ISSUE_IS_MAIN_BRANCH, Boolean.toString(false)))).size(0).aggregation(AggregationBuilders.terms("branchUuids").field(FIELD_ISSUE_BRANCH_UUID).size(branchUuids.size()).subAggregation(AggregationBuilders.terms("types").field(FIELD_ISSUE_TYPE)));
    SearchRequest requestBuilder = EsClient.prepareSearch(TYPE_ISSUE.getMainType()).routing(AuthorizationDoc.idOf(projectUuid));
    requestBuilder.source(sourceBuilder);
    SearchResponse response = client.search(requestBuilder);
    return ((ParsedStringTerms) response.getAggregations().get("branchUuids")).getBuckets().stream().map(bucket -> new PrStatistics(bucket.getKeyAsString(), ((ParsedStringTerms) bucket.getAggregations().get("types")).getBuckets().stream().collect(uniqueIndex(MultiBucketsAggregation.Bucket::getKeyAsString, MultiBucketsAggregation.Bucket::getDocCount)))).collect(MoreCollectors.toList(branchUuids.size()));
}
Also used : Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) CWE(org.sonar.server.issue.index.IssueIndex.Facet.CWE) SumAggregationBuilder(org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder) PARAM_ASSIGNEES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ASSIGNEES) AUTHOR(org.sonar.server.issue.index.IssueIndex.Facet.AUTHOR) EsClient(org.sonar.server.es.EsClient) Collections.singletonList(java.util.Collections.singletonList) FIELD_ISSUE_KEY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_KEY) SimpleFieldFilterScope(org.sonar.server.es.searchrequest.TopAggregationDefinition.SimpleFieldFilterScope) SimpleFieldTopAggregationDefinition(org.sonar.server.es.searchrequest.SimpleFieldTopAggregationDefinition) LANGUAGES(org.sonar.server.issue.index.IssueIndex.Facet.LANGUAGES) PARAM_FILES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_FILES) Map(java.util.Map) FIELD_ISSUE_FUNC_CREATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CREATED_AT) FIELD_ISSUE_TAGS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TAGS) FIELD_ISSUE_RULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RULE_UUID) ParsedFilter(org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter) BucketOrder(org.elasticsearch.search.aggregations.BucketOrder) SEVERITIES(org.sonar.server.issue.index.IssueIndex.Facet.SEVERITIES) FIELD_ISSUE_SCOPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SCOPE) PARAM_SCOPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SCOPES) PARAM_STATUSES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_STATUSES) SANS_TOP_25(org.sonar.server.issue.index.IssueIndex.Facet.SANS_TOP_25) FIELD_ISSUE_CWE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_CWE) TYPE_ISSUE(org.sonar.server.issue.index.IssueIndexDefinition.TYPE_ISSUE) QueryBuilders.boolQuery(org.elasticsearch.index.query.QueryBuilders.boolQuery) PARAM_TYPES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TYPES) Set(java.util.Set) FieldSortBuilder(org.elasticsearch.search.sort.FieldSortBuilder) FIELD_ISSUE_IS_MAIN_BRANCH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_IS_MAIN_BRANCH) FIELD_ISSUE_STATUS(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_STATUS) ParsedMax(org.elasticsearch.search.aggregations.metrics.ParsedMax) Stream(java.util.stream.Stream) CREATED_AT(org.sonar.server.issue.index.IssueIndex.Facet.CREATED_AT) Min(org.elasticsearch.search.aggregations.metrics.Min) FILES(org.sonar.server.issue.index.IssueIndex.Facet.FILES) SecurityReviewRating.computePercent(org.sonar.server.security.SecurityReviewRating.computePercent) ViewIndexDefinition(org.sonar.server.view.index.ViewIndexDefinition) FIELD_ISSUE_ASSIGNEE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID) FIELD_ISSUE_LINE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LINE) PROJECT_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.PROJECT_UUIDS) TYPE_VIEW(org.sonar.server.view.index.ViewIndexDefinition.TYPE_VIEW) AuthorizationDoc(org.sonar.server.permission.index.AuthorizationDoc) Duration(org.joda.time.Duration) FIELD_ISSUE_BRANCH_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_BRANCH_UUID) FIELD_ISSUE_TYPE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TYPE) QueryBuilders.rangeQuery(org.elasticsearch.index.query.QueryBuilders.rangeQuery) RULES(org.sonar.server.issue.index.IssueIndex.Facet.RULES) SearchRequest(org.elasticsearch.action.search.SearchRequest) STATUSES(org.sonar.server.issue.index.IssueIndex.Facet.STATUSES) ArrayList(java.util.ArrayList) RuleType(org.sonar.api.rules.RuleType) FIELD_ISSUE_VULNERABILITY_PROBABILITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_VULNERABILITY_PROBABILITY) PARAM_CREATED_AT(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CREATED_AT) OptionalLong(java.util.OptionalLong) FIELD_ISSUE_RESOLUTION(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_RESOLUTION) FIELD_ISSUE_SEVERITY_VALUE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY_VALUE) Severity(org.sonar.api.rule.Severity) DateUtils(org.sonar.api.utils.DateUtils) WebAuthorizationTypeSupport(org.sonar.server.permission.index.WebAuthorizationTypeSupport) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.STICKY) FIELD_INDEX_TYPE(org.sonar.server.es.IndexType.FIELD_INDEX_TYPE) TermsAggregationBuilder(org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder) Nullable(javax.annotation.Nullable) FIELD_ISSUE_NEW_CODE_REFERENCE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_NEW_CODE_REFERENCE) PARAM_DIRECTORIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_DIRECTORIES) PARAM_RESOLUTIONS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RESOLUTIONS) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) PARAM_SEVERITIES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SEVERITIES) QueryBuilders.matchAllQuery(org.elasticsearch.index.query.QueryBuilders.matchAllQuery) RequestFiltersComputer(org.sonar.server.es.searchrequest.RequestFiltersComputer) NON_STICKY(org.sonar.server.es.searchrequest.TopAggregationDefinition.NON_STICKY) NO_OTHER_SUBAGGREGATION(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_OTHER_SUBAGGREGATION) PARAM_LANGUAGES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_LANGUAGES) ASSIGNED_TO_ME(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNED_TO_ME) FIELD_ISSUE_OWASP_TOP_10(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_OWASP_TOP_10) HasAggregations(org.elasticsearch.search.aggregations.HasAggregations) SANS_TOP_25_RISKY_RESOURCE(org.sonar.server.security.SecurityStandards.SANS_TOP_25_RISKY_RESOURCE) QueryBuilders.termQuery(org.elasticsearch.index.query.QueryBuilders.termQuery) PARAM_OWASP_TOP_10(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_OWASP_TOP_10) FIELD_ISSUE_FILE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FILE_PATH) Preconditions(com.google.common.base.Preconditions) FIELD_ISSUE_FUNC_CLOSED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_CLOSED_AT) SecurityStandards(org.sonar.server.security.SecurityStandards) Date(java.util.Date) MODULE_UUIDS(org.sonar.server.issue.index.IssueIndex.Facet.MODULE_UUIDS) LongBounds(org.elasticsearch.search.aggregations.bucket.histogram.LongBounds) QueryBuilders(org.elasticsearch.index.query.QueryBuilders) OWASP_TOP_10(org.sonar.server.issue.index.IssueIndex.Facet.OWASP_TOP_10) ParsedStringTerms(org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms) BaseDoc(org.sonar.server.es.BaseDoc) FIELD_ISSUE_PROJECT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_PROJECT_UUID) PARAM_SONARSOURCE_SECURITY(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SONARSOURCE_SECURITY) SONARSOURCE_SECURITY(org.sonar.server.issue.index.IssueIndex.Facet.SONARSOURCE_SECURITY) FIELD_ISSUE_DIRECTORY_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_DIRECTORY_PATH) PARAM_AUTHOR(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_AUTHOR) SearchResponse(org.elasticsearch.action.search.SearchResponse) FIELD_ISSUE_AUTHOR_LOGIN(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_AUTHOR_LOGIN) TAGS(org.sonar.server.issue.index.IssueIndex.Facet.TAGS) DateHistogramInterval(org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval) SubAggregationHelper(org.sonar.server.es.searchrequest.SubAggregationHelper) FIELD_ISSUE_EFFORT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_EFFORT) System2(org.sonar.api.utils.System2) Terms(org.elasticsearch.search.aggregations.bucket.terms.Terms) VULNERABILITY(org.sonar.api.rules.RuleType.VULNERABILITY) Collection(java.util.Collection) DIRECTORIES(org.sonar.server.issue.index.IssueIndex.Facet.DIRECTORIES) RESOLUTIONS(org.sonar.server.issue.index.IssueIndex.Facet.RESOLUTIONS) PARAM_SANS_TOP_25(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_SANS_TOP_25) TopAggregationDefinition(org.sonar.server.es.searchrequest.TopAggregationDefinition) FilterAggregationBuilder(org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) Preconditions.checkState(com.google.common.base.Preconditions.checkState) Objects(java.util.Objects) TopAggregationHelper(org.sonar.server.es.searchrequest.TopAggregationHelper) BaseDoc.epochMillisToEpochSeconds(org.sonar.server.es.BaseDoc.epochMillisToEpochSeconds) ASSIGNEES(org.sonar.server.issue.index.IssueIndex.Facet.ASSIGNEES) List(java.util.List) SearchOptions(org.sonar.server.es.SearchOptions) SecurityReviewRating.computeRating(org.sonar.server.security.SecurityReviewRating.computeRating) MultiBucketsAggregation(org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation) AllFilters(org.sonar.server.es.searchrequest.RequestFiltersComputer.AllFilters) SCOPES(org.sonar.server.issue.index.IssueIndex.Facet.SCOPES) MoreCollectors.uniqueIndex(org.sonar.core.util.stream.MoreCollectors.uniqueIndex) Optional(java.util.Optional) BoolQueryBuilder(org.elasticsearch.index.query.BoolQueryBuilder) SQCategory(org.sonar.server.security.SecurityStandards.SQCategory) IntStream(java.util.stream.IntStream) IncludeExclude(org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude) FACET_MODE_EFFORT(org.sonarqube.ws.client.issue.IssuesWsParameters.FACET_MODE_EFFORT) AggregationBuilder(org.elasticsearch.search.aggregations.AggregationBuilder) CWES_BY_CWE_TOP_25(org.sonar.server.security.SecurityStandards.CWES_BY_CWE_TOP_25) PARAM_RULES(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_RULES) EsUtils.escapeSpecialRegexChars(org.sonar.server.es.EsUtils.escapeSpecialRegexChars) Sorting(org.sonar.server.es.Sorting) FIELD_ISSUE_MODULE_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_UUID) SANS_TOP_25_POROUS_DEFENSES(org.sonar.server.security.SecurityStandards.SANS_TOP_25_POROUS_DEFENSES) FIELD_ISSUE_MODULE_PATH(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_MODULE_PATH) OptionalInt(java.util.OptionalInt) EsUtils(org.sonar.server.es.EsUtils) FIELD_ISSUE_SEVERITY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SEVERITY) SECURITY_HOTSPOT(org.sonar.api.rules.RuleType.SECURITY_HOTSPOT) PARAM_TAGS(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_TAGS) FIELD_ISSUE_LANGUAGE(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_LANGUAGE) SANS_TOP_25_INSECURE_INTERACTION(org.sonar.server.security.SecurityStandards.SANS_TOP_25_INSECURE_INTERACTION) MoreCollectors(org.sonar.core.util.stream.MoreCollectors) FIELD_ISSUE_SANS_TOP_25(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SANS_TOP_25) QueryBuilders.termsQuery(org.elasticsearch.index.query.QueryBuilders.termsQuery) TYPES(org.sonar.server.issue.index.IssueIndex.Facet.TYPES) PARAM_CWE(org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_CWE) FIELD_ISSUE_FUNC_UPDATED_AT(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_FUNC_UPDATED_AT) FIELD_ISSUE_SQ_SECURITY_CATEGORY(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_SQ_SECURITY_CATEGORY) FIELD_ISSUE_COMPONENT_UUID(org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_COMPONENT_UUID) TermsLookup(org.elasticsearch.indices.TermsLookup) AggregationBuilders(org.elasticsearch.search.aggregations.AggregationBuilders) PeriodStart(org.sonar.server.issue.index.IssueQuery.PeriodStart) ParsedValueCount(org.elasticsearch.search.aggregations.metrics.ParsedValueCount) Consumer(java.util.function.Consumer) Collectors.toList(java.util.stream.Collectors.toList) Issue(org.sonar.api.issue.Issue) NO_EXTRA_FILTER(org.sonar.server.es.searchrequest.TopAggregationHelper.NO_EXTRA_FILTER) UserSession(org.sonar.server.user.UserSession) Collections(java.util.Collections) CheckForNull(javax.annotation.CheckForNull) IndexType(org.sonar.server.es.IndexType) QueryBuilders.existsQuery(org.elasticsearch.index.query.QueryBuilders.existsQuery) SearchRequest(org.elasticsearch.action.search.SearchRequest) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) SearchResponse(org.elasticsearch.action.search.SearchResponse)

Aggregations

List (java.util.List)4 Optional (java.util.Optional)4 Set (java.util.Set)4 Collectors (java.util.stream.Collectors)4 Preconditions (com.google.common.base.Preconditions)3 Preconditions.checkState (com.google.common.base.Preconditions.checkState)3 String.format (java.lang.String.format)3 ArrayList (java.util.ArrayList)3 Arrays (java.util.Arrays)3 Collection (java.util.Collection)3 Collections (java.util.Collections)3 Collections.singletonList (java.util.Collections.singletonList)3 Date (java.util.Date)3 Map (java.util.Map)3 Objects (java.util.Objects)3 OptionalInt (java.util.OptionalInt)3 OptionalLong (java.util.OptionalLong)3 Consumer (java.util.function.Consumer)3 Collectors.toList (java.util.stream.Collectors.toList)3 IntStream (java.util.stream.IntStream)3