org.elasticsearch.search.aggregations.AggregationBuilders.global()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(15.2k)|赞(0)|评价(0)|浏览(140)

本文整理了Java中org.elasticsearch.search.aggregations.AggregationBuilders.global()方法的一些代码示例,展示了AggregationBuilders.global()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AggregationBuilders.global()方法的具体详情如下:
包路径:org.elasticsearch.search.aggregations.AggregationBuilders
类名称:AggregationBuilders
方法名:global

AggregationBuilders.global介绍

[英]Create a new Global aggregation with the given name.
[中]使用给定名称创建新的全局聚合。

代码示例

代码示例来源:origin: SonarSource/sonarqube

private static AbstractAggregationBuilder createStickyFacet(String facetKey, StickyFacetBuilder facetBuilder, AbstractAggregationBuilder aggregationBuilder) {
 BoolQueryBuilder facetFilter = facetBuilder.getStickyFacetFilter(facetKey);
 return AggregationBuilders
  .global(facetKey)
  .subAggregation(
   AggregationBuilders
    .filter("facet_filter_" + facetKey, facetFilter)
    .subAggregation(aggregationBuilder));
}

代码示例来源:origin: SonarSource/sonarqube

private static void addStatusFacetIfNeeded(SearchOptions options, Map<String, AggregationBuilder> aggregations, StickyFacetBuilder stickyFacetBuilder) {
 if (options.getFacets().contains(FACET_STATUSES)) {
  BoolQueryBuilder facetFilter = stickyFacetBuilder.getStickyFacetFilter(FIELD_RULE_STATUS);
  AggregationBuilder statuses = AggregationBuilders.filter(FACET_STATUSES + "_filter", facetFilter)
   .subAggregation(
    AggregationBuilders
     .terms(FACET_STATUSES)
     .field(FIELD_RULE_STATUS)
     .includeExclude(new IncludeExclude(Joiner.on('|').join(ALL_STATUSES_EXCEPT_REMOVED), RuleStatus.REMOVED.toString()))
     .size(ALL_STATUSES_EXCEPT_REMOVED.size()));
  aggregations.put(FACET_STATUSES, AggregationBuilders.global(FACET_STATUSES).subAggregation(statuses));
 }
}

代码示例来源:origin: SonarSource/sonarqube

/**
 * Creates an aggregation, that will return the top-terms for <code>fieldName</code>.
 *
 * It will filter according to the filters of every of the <em>other</em> fields, but will not apply filters to <em>this</em> field (so that the user can see all terms, even
 * after having chosen for one of the terms).
 *
 * If special filtering is required (like for nested types), additional functionality can be passed into the method in the <code>additionalAggregationFilter</code> parameter.
 *
 * @param fieldName the name of the field that contains the terms
 * @param facetName the name of the aggregation (use this for to find the corresponding results in the response)
 * @param size number of facet items
 * @param additionalAggregationFilter additional features (like filtering using childQuery)
 * @param selected the terms, that the user already has selected
 * @return the (global) aggregation, that can be added on top level of the elasticsearch request
 */
public AggregationBuilder buildStickyFacet(String fieldName, String facetName, int size, Function<TermsAggregationBuilder, AggregationBuilder> additionalAggregationFilter,
 Object... selected) {
 BoolQueryBuilder facetFilter = getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = buildTopFacetAggregation(fieldName, facetName, facetFilter, size, additionalAggregationFilter);
 facetTopAggregation = addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, additionalAggregationFilter, selected);
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: SonarSource/sonarqube

private static AggregationBuilder createAssigneesFacet(IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder queryBuilder) {
 String fieldName = ASSIGNEES.getFieldName();
 String facetName = ASSIGNEES.getName();
 // Same as in super.stickyFacetBuilder
 Map<String, QueryBuilder> assigneeFilters = Maps.newHashMap(filters);
 assigneeFilters.remove(IS_ASSIGNED_FILTER);
 assigneeFilters.remove(fieldName);
 StickyFacetBuilder assigneeFacetBuilder = newStickyFacetBuilder(query, assigneeFilters, queryBuilder);
 BoolQueryBuilder facetFilter = assigneeFacetBuilder.getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = assigneeFacetBuilder.buildTopFacetAggregation(fieldName, facetName, facetFilter, ASSIGNEES.getSize());
 if (!query.assignees().isEmpty()) {
  facetTopAggregation = assigneeFacetBuilder.addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, t -> t, query.assignees().toArray());
 }
 // Add missing facet for unassigned issues
 facetTopAggregation.subAggregation(
  addEffortAggregationIfNeeded(query, AggregationBuilders
   .missing(facetName + FACET_SUFFIX_MISSING)
   .field(fieldName)));
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: SonarSource/sonarqube

private static AggregationBuilder createResolutionFacet(IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder esQuery) {
 String fieldName = RESOLUTIONS.getFieldName();
 String facetName = RESOLUTIONS.getName();
 // Same as in super.stickyFacetBuilder
 Map<String, QueryBuilder> resolutionFilters = Maps.newHashMap(filters);
 resolutionFilters.remove("__isResolved");
 resolutionFilters.remove(fieldName);
 StickyFacetBuilder assigneeFacetBuilder = newStickyFacetBuilder(query, resolutionFilters, esQuery);
 BoolQueryBuilder facetFilter = assigneeFacetBuilder.getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = assigneeFacetBuilder.buildTopFacetAggregation(fieldName, facetName, facetFilter, RESOLUTIONS.getSize());
 facetTopAggregation = assigneeFacetBuilder.addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, t -> t);
 // Add missing facet for unresolved issues
 facetTopAggregation.subAggregation(
  addEffortAggregationIfNeeded(query, AggregationBuilders
   .missing(facetName + FACET_SUFFIX_MISSING)
   .field(fieldName)));
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: SonarSource/sonarqube

private static void addActiveSeverityFacetIfNeeded(RuleQuery query, SearchOptions options, Map<String, AggregationBuilder> aggregations,
 StickyFacetBuilder stickyFacetBuilder) {
 QProfileDto profile = query.getQProfile();
 if (options.getFacets().contains(FACET_ACTIVE_SEVERITIES) && profile != null) {
  // We are building a children aggregation on active rules
  // so the rule filter has to be used as parent filter for active rules
  // from which we remove filters that concern active rules ("activation")
  HasParentQueryBuilder ruleFilter = JoinQueryBuilders.hasParentQuery(
   INDEX_TYPE_RULE.getType(),
   stickyFacetBuilder.getStickyFacetFilter("activation"),
   false);
  // Rebuilding the active rule filter without severities
  BoolQueryBuilder childrenFilter = boolQuery();
  addTermFilter(childrenFilter, FIELD_ACTIVE_RULE_PROFILE_UUID, profile.getRulesProfileUuid());
  RuleIndex.addTermFilter(childrenFilter, FIELD_ACTIVE_RULE_INHERITANCE, query.getInheritance());
  QueryBuilder activeRuleFilter = childrenFilter.must(ruleFilter);
  AggregationBuilder activeSeverities = JoinAggregationBuilders.children(FACET_ACTIVE_SEVERITIES + "_children", INDEX_TYPE_ACTIVE_RULE.getType())
   .subAggregation(
    AggregationBuilders.filter(FACET_ACTIVE_SEVERITIES + "_filter", activeRuleFilter)
     .subAggregation(
      AggregationBuilders
       .terms(FACET_ACTIVE_SEVERITIES)
       .field(FIELD_ACTIVE_RULE_SEVERITY)
       .includeExclude(new IncludeExclude(Joiner.on('|').join(Severity.ALL), null))
       .size(Severity.ALL.size())));
  aggregations.put(FACET_ACTIVE_SEVERITIES, AggregationBuilders.global(FACET_ACTIVE_SEVERITIES).subAggregation(activeSeverities));
 }
}

代码示例来源:origin: SonarSource/sonarqube

private void addAssignedToMeFacetIfNeeded(SearchRequestBuilder builder, SearchOptions options, IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder queryBuilder) {
 String uuid = userSession.getUuid();
 if (!options.getFacets().contains(ASSIGNED_TO_ME.getName()) || StringUtils.isEmpty(uuid)) {
  return;
 }
 String fieldName = ASSIGNED_TO_ME.getFieldName();
 String facetName = ASSIGNED_TO_ME.getName();
 // Same as in super.stickyFacetBuilder
 StickyFacetBuilder assignedToMeFacetBuilder = newStickyFacetBuilder(query, filters, queryBuilder);
 BoolQueryBuilder facetFilter = assignedToMeFacetBuilder.getStickyFacetFilter(IS_ASSIGNED_FILTER, fieldName);
 FilterAggregationBuilder facetTopAggregation = AggregationBuilders
  .filter(facetName + "__filter", facetFilter)
  .subAggregation(addEffortAggregationIfNeeded(query, AggregationBuilders.terms(facetName + "__terms")
   .field(fieldName)
   .includeExclude(new IncludeExclude(escapeSpecialRegexChars(uuid), null))));
 builder.addAggregation(
  AggregationBuilders.global(facetName)
   .subAggregation(facetTopAggregation));
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private AggregationBuilder buildStickyFacet(String fieldName, String facetName, int size, Function<TermsAggregationBuilder, AggregationBuilder> additionalAggregationFilter,
 Object... selected) {
 BoolQueryBuilder facetFilter = getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = buildTopFacetAggregation(fieldName, facetName, facetFilter, size, additionalAggregationFilter);
 facetTopAggregation = addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, additionalAggregationFilter, selected);
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static void addStatusFacetIfNeeded(SearchOptions options, Map<String, AggregationBuilder> aggregations, StickyFacetBuilder stickyFacetBuilder) {
 if (options.getFacets().contains(FACET_STATUSES)) {
  BoolQueryBuilder facetFilter = stickyFacetBuilder.getStickyFacetFilter(FIELD_RULE_STATUS);
  AggregationBuilder statuses = AggregationBuilders.filter(FACET_STATUSES + "_filter", facetFilter)
   .subAggregation(
    AggregationBuilders
     .terms(FACET_STATUSES)
     .field(FIELD_RULE_STATUS)
     .includeExclude(new IncludeExclude(Joiner.on('|').join(ALL_STATUSES_EXCEPT_REMOVED), RuleStatus.REMOVED.toString()))
     .size(ALL_STATUSES_EXCEPT_REMOVED.size()));
  aggregations.put(FACET_STATUSES, AggregationBuilders.global(FACET_STATUSES).subAggregation(statuses));
 }
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static AbstractAggregationBuilder createStickyFacet(String facetKey, StickyFacetBuilder facetBuilder, AbstractAggregationBuilder aggregationBuilder) {
 BoolQueryBuilder facetFilter = facetBuilder.getStickyFacetFilter(facetKey);
 return AggregationBuilders
  .global(facetKey)
  .subAggregation(
   AggregationBuilders
    .filter("facet_filter_" + facetKey, facetFilter)
    .subAggregation(aggregationBuilder));
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static AggregationBuilder createAssigneesFacet(IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder queryBuilder) {
 String fieldName = IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID;
 String facetName = PARAM_ASSIGNEES;
 // Same as in super.stickyFacetBuilder
 Map<String, QueryBuilder> assigneeFilters = Maps.newHashMap(filters);
 assigneeFilters.remove(IS_ASSIGNED_FILTER);
 assigneeFilters.remove(fieldName);
 StickyFacetBuilder assigneeFacetBuilder = newStickyFacetBuilder(query, assigneeFilters, queryBuilder);
 BoolQueryBuilder facetFilter = assigneeFacetBuilder.getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = assigneeFacetBuilder.buildTopFacetAggregation(fieldName, facetName, facetFilter, DEFAULT_FACET_SIZE);
 Collection<String> assigneesEscaped = escapeValuesForFacetInclusion(query.assignees());
 if (!assigneesEscaped.isEmpty()) {
  facetTopAggregation = assigneeFacetBuilder.addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, t -> t, assigneesEscaped.toArray());
 }
 // Add missing facet for unassigned issues
 facetTopAggregation.subAggregation(
  addEffortAggregationIfNeeded(query, AggregationBuilders
   .missing(facetName + FACET_SUFFIX_MISSING)
   .field(fieldName)));
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static AggregationBuilder createResolutionFacet(IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder esQuery) {
 String fieldName = IssueIndexDefinition.FIELD_ISSUE_RESOLUTION;
 String facetName = PARAM_RESOLUTIONS;
 // Same as in super.stickyFacetBuilder
 Map<String, QueryBuilder> resolutionFilters = Maps.newHashMap(filters);
 resolutionFilters.remove("__isResolved");
 resolutionFilters.remove(fieldName);
 StickyFacetBuilder assigneeFacetBuilder = newStickyFacetBuilder(query, resolutionFilters, esQuery);
 BoolQueryBuilder facetFilter = assigneeFacetBuilder.getStickyFacetFilter(fieldName);
 FilterAggregationBuilder facetTopAggregation = assigneeFacetBuilder.buildTopFacetAggregation(fieldName, facetName, facetFilter, DEFAULT_FACET_SIZE);
 facetTopAggregation = assigneeFacetBuilder.addSelectedItemsToFacet(fieldName, facetName, facetTopAggregation, t -> t);
 // Add missing facet for unresolved issues
 facetTopAggregation.subAggregation(
  addEffortAggregationIfNeeded(query, AggregationBuilders
   .missing(facetName + FACET_SUFFIX_MISSING)
   .field(fieldName)));
 return AggregationBuilders
  .global(facetName)
  .subAggregation(facetTopAggregation);
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private void addAssignedToMeFacetIfNeeded(SearchRequestBuilder builder, SearchOptions options, IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder queryBuilder) {
 String uuid = userSession.getUuid();
 if (!options.getFacets().contains(FACET_ASSIGNED_TO_ME) || StringUtils.isEmpty(uuid)) {
  return;
 }
 String fieldName = IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID;
 String facetName = FACET_ASSIGNED_TO_ME;
 // Same as in super.stickyFacetBuilder
 StickyFacetBuilder assignedToMeFacetBuilder = newStickyFacetBuilder(query, filters, queryBuilder);
 BoolQueryBuilder facetFilter = assignedToMeFacetBuilder.getStickyFacetFilter(IS_ASSIGNED_FILTER, fieldName);
 FilterAggregationBuilder facetTopAggregation = AggregationBuilders
  .filter(facetName + "__filter", facetFilter)
  .subAggregation(addEffortAggregationIfNeeded(query, AggregationBuilders.terms(facetName + "__terms")
   .field(fieldName)
   .includeExclude(new IncludeExclude(escapeSpecialRegexChars(uuid), null))));
 builder.addAggregation(
  AggregationBuilders.global(facetName)
   .subAggregation(facetTopAggregation));
}

代码示例来源:origin: org.sonarsource.sonarqube/sonar-server

private static void addActiveSeverityFacetIfNeeded(RuleQuery query, SearchOptions options, Map<String, AggregationBuilder> aggregations,
 StickyFacetBuilder stickyFacetBuilder) {
 QProfileDto profile = query.getQProfile();
 if (options.getFacets().contains(FACET_ACTIVE_SEVERITIES) && profile != null) {
  // We are building a children aggregation on active rules
  // so the rule filter has to be used as parent filter for active rules
  // from which we remove filters that concern active rules ("activation")
  HasParentQueryBuilder ruleFilter = JoinQueryBuilders.hasParentQuery(
   INDEX_TYPE_RULE.getType(),
   stickyFacetBuilder.getStickyFacetFilter("activation"),
   false);
  // Rebuilding the active rule filter without severities
  BoolQueryBuilder childrenFilter = boolQuery();
  addTermFilter(childrenFilter, FIELD_ACTIVE_RULE_PROFILE_UUID, profile.getRulesProfileUuid());
  RuleIndex.addTermFilter(childrenFilter, FIELD_ACTIVE_RULE_INHERITANCE, query.getInheritance());
  QueryBuilder activeRuleFilter = childrenFilter.must(ruleFilter);
  AggregationBuilder activeSeverities = JoinAggregationBuilders.children(FACET_ACTIVE_SEVERITIES + "_children", INDEX_TYPE_ACTIVE_RULE.getType())
   .subAggregation(
    AggregationBuilders.filter(FACET_ACTIVE_SEVERITIES + "_filter", activeRuleFilter)
     .subAggregation(
      AggregationBuilders
       .terms(FACET_ACTIVE_SEVERITIES)
       .field(FIELD_ACTIVE_RULE_SEVERITY)
       .includeExclude(new IncludeExclude(Joiner.on('|').join(Severity.ALL), null))
       .size(Severity.ALL.size())));
  aggregations.put(FACET_ACTIVE_SEVERITIES, AggregationBuilders.global(FACET_ACTIVE_SEVERITIES).subAggregation(activeSeverities));
 }
}

代码示例来源:origin: com.blossom-project/blossom-core-common

GlobalBuilder global = AggregationBuilders.global(GLOBAL_AGGREGATION);
boolean addGlobal = false;

相关文章