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

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

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

AggregationBuilders.cardinality介绍

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

代码示例

代码示例来源:origin: NLPchina/elasticsearch-sql

return AggregationBuilders.cardinality(field.getAlias()).field(field.getParams().get(0).value.toString());
} else {
  Integer precision_threshold = (Integer) (field.getParams().get(1).value);
  return AggregationBuilders.cardinality(field.getAlias()).precisionThreshold(precision_threshold).field(field.getParams().get(0).value.toString());

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

searchSourceBuilder.aggregation(AggregationBuilders.cardinality(AGG_CARDINALITY).field(field));

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

dateHistogramBuilder.subAggregation(AggregationBuilders.cardinality(AGG_CARDINALITY).field(field));

代码示例来源:origin: org.vertexium/vertexium-elasticsearch5

protected List<AggregationBuilder> getElasticsearchCardinalityAggregations(CardinalityAggregation agg) {
  List<AggregationBuilder> cardinalityAggs = new ArrayList<>();
  String fieldName = agg.getPropertyName();
  if (Element.ID_PROPERTY_NAME.equals(fieldName)
      || Edge.LABEL_PROPERTY_NAME.equals(fieldName)
      || Edge.OUT_VERTEX_ID_PROPERTY_NAME.equals(fieldName)
      || Edge.IN_VERTEX_ID_PROPERTY_NAME.equals(fieldName)
      || ExtendedDataRow.TABLE_NAME.equals(fieldName)
      || ExtendedDataRow.ROW_ID.equals(fieldName)
      || ExtendedDataRow.ELEMENT_ID.equals(fieldName)
      || ExtendedDataRow.ELEMENT_TYPE.equals(fieldName)) {
    Map<String, Object> metadata = new HashMap<>();
    metadata.put(AGGREGATION_METADATA_FIELD_NAME_KEY, fieldName);
    if (Element.ID_PROPERTY_NAME.equals(fieldName) || ExtendedDataRow.ELEMENT_ID.equals(fieldName)) {
      fieldName = ELEMENT_ID_FIELD_NAME;
    } else if (ExtendedDataRow.ELEMENT_TYPE.equals(fieldName)) {
      fieldName = ELEMENT_TYPE_FIELD_NAME;
    }
    String aggregationName = createAggregationName(agg.getAggregationName(), "0");
    CardinalityAggregationBuilder cardinalityAgg = AggregationBuilders.cardinality(aggregationName);
    cardinalityAgg.setMetaData(metadata);
    cardinalityAgg.field(fieldName);
    cardinalityAggs.add(cardinalityAgg);
  } else {
    throw new VertexiumException("Cannot use cardinality aggregation on properties with visibility: " + fieldName);
  }
  return cardinalityAggs;
}

代码示例来源:origin: visallo/vertexium

protected List<AggregationBuilder> getElasticsearchCardinalityAggregations(CardinalityAggregation agg) {
  List<AggregationBuilder> cardinalityAggs = new ArrayList<>();
  String fieldName = agg.getPropertyName();
  if (Element.ID_PROPERTY_NAME.equals(fieldName)
      || Edge.LABEL_PROPERTY_NAME.equals(fieldName)
      || Edge.OUT_VERTEX_ID_PROPERTY_NAME.equals(fieldName)
      || Edge.IN_VERTEX_ID_PROPERTY_NAME.equals(fieldName)
      || ExtendedDataRow.TABLE_NAME.equals(fieldName)
      || ExtendedDataRow.ROW_ID.equals(fieldName)
      || ExtendedDataRow.ELEMENT_ID.equals(fieldName)
      || ExtendedDataRow.ELEMENT_TYPE.equals(fieldName)) {
    Map<String, Object> metadata = new HashMap<>();
    metadata.put(AGGREGATION_METADATA_FIELD_NAME_KEY, fieldName);
    if (Element.ID_PROPERTY_NAME.equals(fieldName) || ExtendedDataRow.ELEMENT_ID.equals(fieldName)) {
      fieldName = ELEMENT_ID_FIELD_NAME;
    } else if (ExtendedDataRow.ELEMENT_TYPE.equals(fieldName)) {
      fieldName = ELEMENT_TYPE_FIELD_NAME;
    }
    String aggregationName = createAggregationName(agg.getAggregationName(), "0");
    CardinalityAggregationBuilder cardinalityAgg = AggregationBuilders.cardinality(aggregationName);
    cardinalityAgg.setMetaData(metadata);
    cardinalityAgg.field(fieldName);
    cardinalityAggs.add(cardinalityAgg);
  } else {
    throw new VertexiumException("Cannot use cardinality aggregation on properties with visibility: " + fieldName);
  }
  return cardinalityAggs;
}

代码示例来源:origin: org.nlpcn/elasticsearch-sql

/**
 * Create count aggregation.
 *
 * @param field The count function
 * @return AggregationBuilder use to count result
 */
private ValuesSourceAggregationBuilder makeCountAgg(MethodField field) {
  // Cardinality is approximate DISTINCT.
  if ("DISTINCT".equals(field.getOption())) {
    if (field.getParams().size() == 1) {
      return AggregationBuilders.cardinality(field.getAlias()).field(field.getParams().get(0).value.toString());
    } else {
      Integer precision_threshold = (Integer) (field.getParams().get(1).value);
      return AggregationBuilders.cardinality(field.getAlias()).precisionThreshold(precision_threshold).field(field.getParams().get(0).value.toString());
    }
  }
  String fieldName = field.getParams().get(0).value.toString();
  // In case of count(*) we use '_index' as field parameter to count all documents
  if ("*".equals(fieldName)) {
    KVValue kvValue = new KVValue(null, "_index");
    field.getParams().set(0, kvValue);
    return AggregationBuilders.count(field.getAlias()).field(kvValue.toString());
  } else {
    return AggregationBuilders.count(field.getAlias()).field(fieldName);
  }
}

代码示例来源:origin: Thare-Lam/fast-elasticsearch-query-builder

private static void setCardinalityAggregation(SearchSourceBuilder searchSource, CardinalityAggregation aggregation,
    Boolean value) {
  if (!value) {
    return;
  }
  CardinalityAggregationBuilder cardinalityAggregation = AggregationBuilders.cardinality(aggregation.name()).field(aggregation.field());
  long precisionThreshold = aggregation.precisionThreshold();
  if (precisionThreshold > 0) {
    cardinalityAggregation.precisionThreshold(precisionThreshold);
  }
  searchSource.aggregation(cardinalityAggregation);
}

代码示例来源:origin: Anchormen/sql4es

public FilterAggregationBuilder addCountDistinctAggregation(QueryState state){
  FilterAggregationBuilder result = AggregationBuilders.filter("cardinality_aggs", QueryBuilders.matchAllQuery());
  for(Column col : state.getHeading().columns()){
    result.subAggregation( AggregationBuilders.cardinality(col.getLabel()).field(col.getColumn()).precisionThreshold(state.getIntProp(Utils.PROP_PRECISION_THRESHOLD, 3000)) );
  }
  return result;
}

代码示例来源:origin: sirensolutions/siren-join

protected SearchRequest getCardinalityRequest(FilterJoinNode node, ActionRequest parentRequest) {
 String[] lookupIndices = node.getLookupIndices();
 String[] lookupTypes = node.getLookupTypes();
 String lookupPath = node.getLookupPath();
 // Build the search source with the aggregate definition
 SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
 sourceBuilder.size(0).aggregation(AggregationBuilders.cardinality(lookupPath).field(lookupPath));
 // Build search request with reference to the parent request
 SearchRequest searchRequest = new SearchRequest(parentRequest);
 searchRequest.indices(lookupIndices).types(lookupTypes).source(sourceBuilder);
 return searchRequest;
}

代码示例来源:origin: flaxsearch/BioSolr

.setSize(0)
    .addAggregation(termsAgg)
    .addAggregation(AggregationBuilders.cardinality(COUNT_AGGREGATION).field(GROUP_FIELD));
LOGGER.debug("ES Query: {}", srb.toString());

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

searchSourceBuilder.aggregation(AggregationBuilders.cardinality(AGG_CARDINALITY).field(field));

代码示例来源:origin: org.nuxeo.elasticsearch/nuxeo-elasticsearch-core

/**
 * Creates an AggregationBuilder for the supplied type
 */
public AggregationBuilder toBuilder(String type) {
  switch (type) {
  case AGG_CARDINALITY:
    return AggregationBuilders.cardinality(getId()).field(getField());
  case AGG_COUNT:
    return AggregationBuilders.count(getId()).field(getField());
  case AGG_SUM:
    return AggregationBuilders.sum(getId()).field(getField());
  case AGG_AVG:
    return AggregationBuilders.avg(getId()).field(getField());
  case AGG_MAX:
    return AggregationBuilders.max(getId()).field(getField());
  case AGG_MIN:
    return AggregationBuilders.min(getId()).field(getField());
  default:
    throw new IllegalArgumentException("Unknown aggregate type: " + type);
  }
}

代码示例来源:origin: mnemonic-no/act-platform

private AggregationBuilder buildObjectsAggregation(FactSearchCriteria criteria) {
 // 1. Reduce to Facts matching the search criteria.
 return filter(FILTER_FACTS_AGGREGATION_NAME, buildFactsQuery(criteria))
     // 2. Map to nested Object documents.
     .subAggregation(nested(NESTED_OBJECTS_AGGREGATION_NAME, "objects")
         // 3. Reduce to Objects matching the search criteria.
         .subAggregation(filter(FILTER_OBJECTS_AGGREGATION_NAME, buildObjectsQuery(criteria))
             // 4. Calculate the number of unique Objects by id. This will give the 'count' value.
             // If 'count' is smaller than MAX_RESULT_WINDOW a correct value is expected, thus,
             // the precision threshold is set to MAX_RESULT_WINDOW.
             .subAggregation(cardinality(OBJECTS_COUNT_AGGREGATION_NAME)
                 .field("objects.id")
                 .precisionThreshold(MAX_RESULT_WINDOW)
             )
             // 5. Reduce to buckets of unique Objects by id, restricted to the search criteria's limit.
             // This will give the actual search results.
             .subAggregation(terms(UNIQUE_OBJECTS_AGGREGATION_NAME)
                 .field("objects.id")
                 .size(calculateMaximumSize(criteria))
                 // 6. Map to the unique Object's source. Set size to 1, because all Objects in one
                 // bucket are the same (ignoring 'direction' which isn't relevant for Object search).
                 .subAggregation(topHits(UNIQUE_OBJECTS_SOURCE_AGGREGATION_NAME)
                     .size(1)
                 )
             )
         )
     );
}

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

dateHistogramBuilder.subAggregation(AggregationBuilders.cardinality(AGG_CARDINALITY).field(field));

相关文章