private List<Facet> updateRangeFacets(JsonObject aggregations, RangeFacetRequest<?> facetRequest) { if ( !ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) && !Date.class.isAssignableFrom( facetRequest.getFacetValueType() ) && !ReflectionHelper.isFloatingPointType( facetRequest.getFacetValueType() ) ) { throw LOG.unsupportedFacetRangeParameter( facetRequest.getFacetValueType().getName() ); } ArrayList<Facet> facets = new ArrayList<>(); for ( FacetRange<?> facetRange : facetRequest.getFacetRangeList() ) { JsonElement aggregation = aggregations.get( facetRequest.getFacetingName() + "-" + facetRange.getIdentifier() ); if ( aggregation == null ) { continue; } int docCount = aggregation.getAsJsonObject().get( "doc_count" ).getAsInt(); if ( docCount == 0 && !facetRequest.hasZeroCountsIncluded() ) { continue; } facets.add( facetRequest.createFacet( facetRange.getRangeString(), docCount ) ); } return facets; }
@Override public Facet createFacet(FacetMetadata facetMetadata, String value, int count) { int facetIndex = findFacetRangeIndex( value ); FacetRange<T> range = facetRangeList.get( facetIndex ); return new RangeFacetImpl<>( getFacetingName(), getFieldName(), facetMetadata.getSourceField().getAbsoluteName(), range, count, facetIndex ); }
private ArrayList<Facet> updateRangeFacets(RangeFacetRequest<?> facetRequest, FacetMetadata facetMetadata) throws IOException { ArrayList<Facet> facets; if ( ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) || Date.class.isAssignableFrom( facetRequest.getFacetValueType() ) ) { FacetResult facetResult = getFacetResultForLongRange( facetRequest ); facets = new ArrayList<>( facetResult.labelValues.length ); for ( LabelAndValue labelAndValue : facetResult.labelValues ) { if ( !facetRequest.hasZeroCountsIncluded() && (int) labelAndValue.value == 0 ) { continue; } Facet facet = facetRequest.createFacet( facetMetadata, labelAndValue.label, (int) labelAndValue.value ); facets.add( facet ); } } else if ( ReflectionHelper.isFloatingPointType( facetRequest.getFacetValueType() ) ) { FacetResult facetResult = getFacetResultForFloatingPointRange( facetRequest ); facets = new ArrayList<>( facetResult.labelValues.length ); for ( LabelAndValue labelAndValue : facetResult.labelValues ) { if ( !facetRequest.hasZeroCountsIncluded() && (int) labelAndValue.value == 0 ) { continue; } Facet facet = facetRequest.createFacet( facetMetadata, labelAndValue.label, (int) labelAndValue.value ); facets.add( facet ); } } else { throw log.unsupportedFacetRangeParameter( facetRequest.getFacetValueType().getName() ); } return facets; }
private FacetResult getFacetResultForLongRange(RangeFacetRequest<?> facetRequest) throws IOException { List<? extends FacetRange<?>> facetRanges = facetRequest.getFacetRangeList(); LongRange[] ranges = new LongRange[facetRanges.size()]; long max; if ( ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) ) { min = facetRange.getMin() == null ? Long.MIN_VALUE : ( (Number) facetRange.getMin() ).longValue(); max = facetRange.getMax() == null ? Long.MAX_VALUE : ( (Number) facetRange.getMax() ).longValue(); facetRequest.getFieldName(), facetsCollector, ranges ); return facetCount.getTopChildren( facetRequest.getMaxNumberOfFacets(), facetRequest.getFieldName() );
private FacetResult getFacetResultForFloatingPointRange(RangeFacetRequest<?> facetRequest) throws IOException { List<? extends FacetRange<?>> facetRanges = facetRequest.getFacetRangeList(); DoubleRange[] ranges = new DoubleRange[facetRanges.size()]; int i = 0; for ( FacetRange<?> facetRange : facetRanges ) { ranges[i] = new DoubleRange( facetRange.getRangeString(), facetRange.getMin() == null ? Double.MIN_VALUE : ( (Number) facetRange.getMin() ).doubleValue(), facetRange.isMinIncluded(), facetRange.getMax() == null ? Double.MAX_VALUE : ( (Number) facetRange.getMax() ).doubleValue(), facetRange.isMaxIncluded() ); i++; } DoubleRangeFacetCounts facetCount = new DoubleRangeFacetCounts( facetRequest.getFieldName(), facetsCollector, ranges ); return facetCount.getTopChildren( facetRequest.getMaxNumberOfFacets(), facetRequest.getFieldName() ); }
for ( FacetRange<?> facetRange : rangeFacetingRequest.getFacetRangeList() ) { JsonBuilder.Object comparisonFragment = JsonBuilder.object(); if ( facetRange.getMin() != null ) {
FacetingRequest getFacetingRequest() { FacetingRequestImpl request; if ( isRangeQuery ) { request = new RangeFacetRequest<>( name, fieldName, rangeList ); } else { if ( FacetSortOrder.RANGE_DEFINITION_ORDER.equals( sort ) ) { throw log.rangeDefinitionOrderRequestedForDiscreteFacetRequest(); } request = new DiscreteFacetRequest( name, fieldName ); } request.setSort( sort ); request.setIncludeZeroCounts( includeZeroCount ); request.setMaxNumberOfFacets( maxFacetCount ); return request; }
private ArrayList<Facet> updateRangeFacets(RangeFacetRequest<?> facetRequest, FacetMetadata facetMetadata) throws IOException { ArrayList<Facet> facets; if ( ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) || Date.class.isAssignableFrom( facetRequest.getFacetValueType() ) ) { FacetResult facetResult = getFacetResultForLongRange( facetRequest ); facets = new ArrayList<>( facetResult.labelValues.length ); for ( LabelAndValue labelAndValue : facetResult.labelValues ) { if ( !facetRequest.hasZeroCountsIncluded() && (int) labelAndValue.value == 0 ) { continue; } Facet facet = facetRequest.createFacet( facetMetadata, labelAndValue.label, (int) labelAndValue.value ); facets.add( facet ); } } else if ( ReflectionHelper.isFloatingPointType( facetRequest.getFacetValueType() ) ) { FacetResult facetResult = getFacetResultForFloatingPointRange( facetRequest ); facets = new ArrayList<>( facetResult.labelValues.length ); for ( LabelAndValue labelAndValue : facetResult.labelValues ) { if ( !facetRequest.hasZeroCountsIncluded() && (int) labelAndValue.value == 0 ) { continue; } Facet facet = facetRequest.createFacet( facetMetadata, labelAndValue.label, (int) labelAndValue.value ); facets.add( facet ); } } else { throw log.unsupportedFacetRangeParameter( facetRequest.getFacetValueType().getName() ); } return facets; }
private FacetResult getFacetResultForLongRange(RangeFacetRequest<?> facetRequest) throws IOException { List<? extends FacetRange<?>> facetRanges = facetRequest.getFacetRangeList(); LongRange[] ranges = new LongRange[facetRanges.size()]; long max; if ( ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) ) { min = facetRange.getMin() == null ? Long.MIN_VALUE : ( (Number) facetRange.getMin() ).longValue(); max = facetRange.getMax() == null ? Long.MAX_VALUE : ( (Number) facetRange.getMax() ).longValue(); facetRequest.getFieldName(), ); return facetCount.getTopChildren( facetRequest.getMaxNumberOfFacets(), facetRequest.getFieldName() );
private FacetResult getFacetResultForFloatingPointRange(RangeFacetRequest<?> facetRequest) throws IOException { List<? extends FacetRange<?>> facetRanges = facetRequest.getFacetRangeList(); DoubleRange[] ranges = new DoubleRange[facetRanges.size()]; int i = 0; for ( FacetRange<?> facetRange : facetRanges ) { ranges[i] = new DoubleRange( facetRange.getRangeString(), facetRange.getMin() == null ? Double.MIN_VALUE : ( (Number) facetRange.getMin() ).doubleValue(), facetRange.isMinIncluded(), facetRange.getMax() == null ? Double.MAX_VALUE : ( (Number) facetRange.getMax() ).doubleValue(), facetRange.isMaxIncluded() ); i++; } DoubleRangeFacetCounts facetCount = new DoubleRangeFacetCounts( facetRequest.getFieldName(), // Use an empty collector if we didn't collect facets (empty index for instance) facetsCollector != null ? facetsCollector : new FacetsCollector(), ranges ); return facetCount.getTopChildren( facetRequest.getMaxNumberOfFacets(), facetRequest.getFieldName() ); }
for ( FacetRange<?> facetRange : rangeFacetingRequest.getFacetRangeList() ) { JsonBuilder.Object comparisonFragment = JsonBuilder.object(); if ( facetRange.getMin() != null ) {
FacetingRequest getFacetingRequest() { FacetingRequestImpl request; if ( isRangeQuery ) { request = new RangeFacetRequest<>( name, fieldName, rangeList ); } else { if ( FacetSortOrder.RANGE_DEFINITION_ORDER.equals( sort ) ) { throw log.rangeDefinitionOrderRequestedForDiscreteFacetRequest(); } request = new DiscreteFacetRequest( name, fieldName ); } request.setSort( sort ); request.setIncludeZeroCounts( includeZeroCount ); request.setMaxNumberOfFacets( maxFacetCount ); return request; }
private List<Facet> extractRangeFacets(JsonObject aggregations, RangeFacetRequest<?> facetRequest, FacetMetadata facetMetadata) { if ( !ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) && !Date.class.isAssignableFrom( facetRequest.getFacetValueType() ) && !ReflectionHelper.isFloatingPointType( facetRequest.getFacetValueType() ) ) { throw LOG.unsupportedFacetRangeParameter( facetRequest.getFacetValueType().getName() ); } ArrayList<Facet> facets = new ArrayList<>(); for ( FacetRange<?> facetRange : facetRequest.getFacetRangeList() ) { JsonElement aggregation = aggregations.get( facetRequest.getFacetingName() + "-" + facetRange.getIdentifier() ); if ( aggregation == null ) { continue; } int docCount = aggregation.getAsJsonObject().get( "doc_count" ).getAsInt(); if ( docCount == 0 && !facetRequest.hasZeroCountsIncluded() ) { continue; } facets.add( facetRequest.createFacet( facetMetadata, facetRange.getRangeString(), docCount ) ); } return facets; }
@Override public Facet createFacet(FacetMetadata facetMetadata, String value, int count) { int facetIndex = findFacetRangeIndex( value ); FacetRange<T> range = facetRangeList.get( facetIndex ); return new RangeFacetImpl<>( getFacetingName(), getFieldName(), facetMetadata.getSourceField().getAbsoluteName(), range, count, facetIndex ); }
for ( FacetRange<?> facetRange : rangeFacetingRequest.getFacetRangeList() ) { JsonBuilder.Object comparisonFragment = JsonBuilder.object(); if ( facetRange.getMin() != null ) {
private List<Facet> extractRangeFacets(JsonObject aggregations, RangeFacetRequest<?> facetRequest, FacetMetadata facetMetadata) { if ( !ReflectionHelper.isIntegerType( facetRequest.getFacetValueType() ) && !Date.class.isAssignableFrom( facetRequest.getFacetValueType() ) && !ReflectionHelper.isFloatingPointType( facetRequest.getFacetValueType() ) ) { throw LOG.unsupportedFacetRangeParameter( facetRequest.getFacetValueType().getName() ); } ArrayList<Facet> facets = new ArrayList<>(); for ( FacetRange<?> facetRange : facetRequest.getFacetRangeList() ) { JsonElement aggregation = aggregations.get( facetRequest.getFacetingName() + "-" + facetRange.getIdentifier() ); if ( aggregation == null ) { continue; } int docCount = aggregation.getAsJsonObject().get( "doc_count" ).getAsInt(); if ( docCount == 0 && !facetRequest.hasZeroCountsIncluded() ) { continue; } facets.add( facetRequest.createFacet( facetMetadata, facetRange.getRangeString(), docCount ) ); } return facets; }