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

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

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

AggregationBuilders.terms介绍

[英]Create a new Terms aggregation with the given name.
[中]使用给定名称创建新术语聚合。

代码示例

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

public FilterAggregationBuilder addSelectedItemsToFacet(String fieldName, String facetName, FilterAggregationBuilder facetTopAggregation,
 Function<TermsAggregationBuilder, AggregationBuilder> additionalAggregationFilter, Object... selected) {
 if (selected.length <= 0) {
  return facetTopAggregation;
 }
 String includes = Arrays.stream(selected)
  .filter(Objects::nonNull)
  .map(s -> EsUtils.escapeSpecialRegexChars(s.toString()))
  .collect(PIPE_JOINER);
 TermsAggregationBuilder selectedTerms = AggregationBuilders.terms(facetName + "_selected")
  .size(max(MAXIMUM_NUMBER_OF_SELECTED_ITEMS_WHOSE_DOC_COUNT_WILL_BE_CALCULATED, includes.length()))
  .field(fieldName)
  .includeExclude(new IncludeExclude(includes, null));
 if (subAggregation != null) {
  selectedTerms = selectedTerms.subAggregation(subAggregation);
 }
 AggregationBuilder improvedAggregation = additionalAggregationFilter.apply(selectedTerms);
 facetTopAggregation.subAggregation(improvedAggregation);
 return facetTopAggregation;
}

代码示例来源:origin: loklak/loklak_server

/**
 * Get AggregationBuilder by country without time constraints.
 * @param fieldName Name of field containing country code
 * @param classifierName Name of field containing country code
 * @return AggregationBuilder with required configuration
 */
private static TermsBuilder getClassifierAggregationBuilderByCountry(String fieldName, String classifierName) {
  return AggregationBuilders.terms("by_country").field(fieldName)
    .subAggregation(getClassifierAggregationBuilder(classifierName));
}

代码示例来源:origin: Graylog2/graylog2-server

.subAggregation(AggregationBuilders.terms(AGG_TERMS)
      .field(field)
      .size(size > 0 ? size : 50)
.subAggregation(AggregationBuilders.terms(AGG_TERMS)
    .script(new Script(ScriptType.INLINE, "painless", scriptStringBuilder.toString(),  Collections.emptyMap()))
    .size(size > 0 ? size : 50)

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

private static AggregationBuilder addSecurityReportSubAggregations(AggregationBuilder categoriesAggs, boolean includeCwe) {
 AggregationBuilder aggregationBuilder = addSecurityReportIssueCountAggregations(categoriesAggs);
 if (includeCwe) {
  categoriesAggs
   .subAggregation(addSecurityReportIssueCountAggregations(AggregationBuilders.terms("cwe").field(FIELD_ISSUE_CWE)));
 }
 return 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

private TermsAggregationBuilder buildTermsFacetAggregation(String fieldName, String facetName, int size) {
 TermsAggregationBuilder termsAggregation = AggregationBuilders.terms(facetName)
  .field(fieldName)
  .order(order)
  .size(size)
  .minDocCount(FACET_DEFAULT_MIN_DOC_COUNT);
 if (subAggregation != null) {
  termsAggregation = termsAggregation.subAggregation(subAggregation);
 }
 return termsAggregation;
}

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

scopes.build().toArray(new String[0]));
TermsAggregationBuilder termsAggregation = AggregationBuilders.terms(AGGREGATION_NAME_FOR_TAGS)
 .field(FIELD_RULE_EXTENSION_TAGS)
 .size(size)

代码示例来源:origin: macrozheng/mall

builder.addAggregation(AggregationBuilders.terms("brandNames").field("brandName"));
builder.addAggregation(AggregationBuilders.terms("productCategoryNames").field("productCategoryName"));
    .subAggregation(AggregationBuilders.filter("productAttrs")
    .filter(QueryBuilders.termQuery("attrValueList.type",1))
    .subAggregation(AggregationBuilders.terms("attrIds")
        .field("attrValueList.productAttributeId")
        .subAggregation(AggregationBuilders.terms("attrValues")
            .field("attrValueList.value"))
        .subAggregation(AggregationBuilders.terms("attrNames")
            .field("attrValueList.name"))));
builder.addAggregation(aggregationBuilder);

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

public List<BranchStatistics> searchBranchStatistics(String projectUuid, List<String> branchUuids) {
 if (branchUuids.isEmpty()) {
  return Collections.emptyList();
 }
 SearchRequestBuilder request = client.prepareSearch(INDEX_TYPE_ISSUE)
  .setRouting(projectUuid)
  .setQuery(
   boolQuery()
    .must(termsQuery(FIELD_ISSUE_BRANCH_UUID, branchUuids))
    .mustNot(existsQuery(FIELD_ISSUE_RESOLUTION))
    .must(termQuery(FIELD_ISSUE_IS_MAIN_BRANCH, Boolean.toString(false))))
  .setSize(0)
  .addAggregation(AggregationBuilders.terms("branchUuids")
   .field(FIELD_ISSUE_BRANCH_UUID)
   .size(branchUuids.size())
   .subAggregation(AggregationBuilders.terms("types")
    .field(FIELD_ISSUE_TYPE)));
 SearchResponse response = request.get();
 return ((StringTerms) response.getAggregations().get("branchUuids")).getBuckets().stream()
  .map(bucket -> new BranchStatistics(bucket.getKeyAsString(),
   ((StringTerms) bucket.getAggregations().get("types")).getBuckets()
    .stream()
    .collect(uniqueIndex(StringTerms.Bucket::getKeyAsString, InternalTerms.Bucket::getDocCount))))
  .collect(MoreCollectors.toList(branchUuids.size()));
}

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

public List<String> searchTags(@Nullable String textQuery, int size) {
 int maxPageSize = 500;
 checkArgument(size <= maxPageSize, "Page size must be lower than or equals to " + maxPageSize);
 if (size <= 0) {
  return emptyList();
 }
 TermsAggregationBuilder tagFacet = AggregationBuilders.terms(FIELD_TAGS)
  .field(FIELD_TAGS)
  .size(size)
  .minDocCount(1)
  .order(Terms.Order.term(true));
 if (textQuery != null) {
  tagFacet.includeExclude(new IncludeExclude(".*" + escapeSpecialRegexChars(textQuery) + ".*", null));
 }
 SearchRequestBuilder searchQuery = client
  .prepareSearch(INDEX_TYPE_PROJECT_MEASURES)
  .setQuery(authorizationTypeSupport.createQueryFilter())
  .setFetchSource(false)
  .setSize(0)
  .addAggregation(tagFacet);
 Terms aggregation = searchQuery.get().getAggregations().get(FIELD_TAGS);
 return aggregation.getBuckets().stream()
  .map(Bucket::getKeyAsString)
  .collect(MoreCollectors.toList());
}

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

.filter(rangeQuery(FIELD_ISSUE_FUNC_CREATED_AT).gte(epochMillisToEpochSeconds(from))))
.subAggregation(
 AggregationBuilders.terms("branchUuid").field(FIELD_ISSUE_BRANCH_UUID)
  .subAggregation(
   AggregationBuilders.count(COUNT).field(FIELD_ISSUE_KEY))

代码示例来源:origin: Graylog2/graylog2-server

.subAggregation(AggregationBuilders.min("ts_min").field(Message.FIELD_TIMESTAMP))
    .subAggregation(AggregationBuilders.max("ts_max").field(Message.FIELD_TIMESTAMP))
    .subAggregation(AggregationBuilders.terms("streams").field(Message.FIELD_STREAMS));
final String query = searchSource()
    .aggregation(builder)

代码示例来源:origin: loklak/loklak_server

/**
 * Get AggregationBuilder to calculate sum, avg and doc count for given classifier.
 * @param classifierName Name of classifier
 * @return AggregationBuilder with required configuration
 */
private static TermsBuilder getClassifierAggregationBuilder(String classifierName) {
  String probabilityField = classifierName + "_probability";
  return AggregationBuilders.terms("by_class").field(classifierName)
    .subAggregation(
      AggregationBuilders.avg("avg_probability").field(probabilityField)
    )
    .subAggregation(
      AggregationBuilders.sum("sum_probability").field(probabilityField)
    );
}

代码示例来源: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: SonarSource/sonarqube

private Terms listTermsMatching(String fieldName, IssueQuery query, @Nullable String textQuery, Terms.Order termsOrder, int size) {
 SearchRequestBuilder requestBuilder = client
  .prepareSearch(INDEX_TYPE_ISSUE)
  // Avoids returning search hits
  .setSize(0);
 requestBuilder.setQuery(boolQuery().must(QueryBuilders.matchAllQuery()).filter(createBoolFilter(query)));
 TermsAggregationBuilder aggreg = AggregationBuilders.terms("_ref")
  .field(fieldName)
  .size(size)
  .order(termsOrder)
  .minDocCount(1L);
 if (textQuery != null) {
  aggreg.includeExclude(new IncludeExclude(format(SUBSTRING_MATCH_REGEXP, escapeSpecialRegexChars(textQuery)), null));
 }
 SearchResponse searchResponse = requestBuilder.addAggregation(aggreg).get();
 return searchResponse.getAggregations().get("_ref");
}

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

public List<String> terms(String fields, @Nullable String query, int size) {
 TermsAggregationBuilder termsAggregation = AggregationBuilders.terms(AGGREGATION_NAME)
  .field(fields)
  .size(size)
  .minDocCount(1);
 if (query != null) {
  termsAggregation.includeExclude(new IncludeExclude(".*" + escapeSpecialRegexChars(query) + ".*", null));
 }
 SearchRequestBuilder request = client
  .prepareSearch(INDEX_TYPE_RULE, INDEX_TYPE_ACTIVE_RULE)
  .setQuery(matchAllQuery())
  .setSize(0)
  .addAggregation(termsAggregation);
 SearchResponse esResponse = request.get();
 return EsUtils.termsKeys(esResponse.getAggregations().get(AGGREGATION_NAME));
}

代码示例来源:origin: spring-projects/spring-data-elasticsearch

@Override
public AbstractAggregationBuilder getFacet() {
  Assert.notEmpty(fields, "Please select at last one field !!!");
  final TermsAggregationBuilder termsBuilder = AggregationBuilders.terms(getName()).field(fields[0]).size(this.size);

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

request.addAggregation(AggregationBuilders.terms(FIELD_LANGUAGES)
 .field(FIELD_LANGUAGES)
 .size(MAX_PAGE_SIZE)
 .order(Terms.Order.count(false)));
request.addAggregation(AggregationBuilders.nested(FIELD_NCLOC_LANGUAGE_DISTRIBUTION, FIELD_NCLOC_LANGUAGE_DISTRIBUTION)
 .subAggregation(AggregationBuilders.terms(FIELD_NCLOC_LANGUAGE_DISTRIBUTION + "_terms")
  .field(FIELD_DISTRIB_LANGUAGE)
  .size(MAX_PAGE_SIZE)

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

private static AggregationBuilder addSecurityReportIssueCountAggregations(AggregationBuilder categoryAggs) {
 return categoryAggs
  .subAggregation(
   AggregationBuilders.filter("vulnerabilities", boolQuery()
    .filter(termQuery(FIELD_ISSUE_TYPE, RuleType.VULNERABILITY.name()))
    .mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)))
    .subAggregation(
     AggregationBuilders.terms("severity").field(FIELD_ISSUE_SEVERITY)
      .subAggregation(
       AggregationBuilders.count(COUNT).field(FIELD_ISSUE_KEY))))
  .subAggregation(AggregationBuilders.filter("openSecurityHotspots", boolQuery()
   .filter(termQuery(FIELD_ISSUE_TYPE, RuleType.SECURITY_HOTSPOT.name()))
   .mustNot(existsQuery(FIELD_ISSUE_RESOLUTION)))
   .subAggregation(
    AggregationBuilders.count(COUNT).field(FIELD_ISSUE_KEY)))
  .subAggregation(AggregationBuilders.filter("toReviewSecurityHotspots", boolQuery()
   .filter(termQuery(FIELD_ISSUE_TYPE, RuleType.SECURITY_HOTSPOT.name()))
   .filter(termQuery(FIELD_ISSUE_STATUS, Issue.STATUS_RESOLVED))
   .filter(termQuery(FIELD_ISSUE_RESOLUTION, Issue.RESOLUTION_FIXED)))
   .subAggregation(
    AggregationBuilders.count(COUNT).field(FIELD_ISSUE_KEY)))
  .subAggregation(AggregationBuilders.filter("wontFixSecurityHotspots", boolQuery()
   .filter(termQuery(FIELD_ISSUE_TYPE, RuleType.SECURITY_HOTSPOT.name()))
   .filter(termQuery(FIELD_ISSUE_STATUS, Issue.STATUS_RESOLVED))
   .filter(termQuery(FIELD_ISSUE_RESOLUTION, Issue.RESOLUTION_WONT_FIX)))
   .subAggregation(
    AggregationBuilders.count(COUNT).field(FIELD_ISSUE_KEY)));
}

相关文章