本文整理了Java中org.elasticsearch.search.aggregations.AggregationBuilders.terms()
方法的一些代码示例,展示了AggregationBuilders.terms()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AggregationBuilders.terms()
方法的具体详情如下:
包路径:org.elasticsearch.search.aggregations.AggregationBuilders
类名称: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)));
}
内容来源于网络,如有侵权,请联系作者删除!