Package org.apache.lucene.facet.taxonomy

# Class TaxonomyFacetFloatAssociations

java.lang.Object
org.apache.lucene.facet.Facets
org.apache.lucene.facet.taxonomy.TaxonomyFacetFloatAssociations

public class TaxonomyFacetFloatAssociations extends Facets
Aggregates float values associated with facet fields. Supports two different approaches:

1. Fields can be indexed with `FloatAssociationFacetField`, associating weights with facet values at indexing time.
2. Fields can be indexed with `FacetField` and a `DoubleValuesSource` can dynamically supply a weight from each doc. With this approach, the document's weight gets contributed to each facet value associated with the doc.

Aggregation logic is supplied by the provided `FloatAssociationFacetField`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final AssociationAggregationFunction`
  `aggregationFunction`
  Aggregation function used for combining values.
  `protected Comparator<Number>`
  `valueComparator`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TaxonomyFacetFloatAssociations(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction)`
  Create `TaxonomyFacetFloatAssociations` against the specified index field.
  `TaxonomyFacetFloatAssociations(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction, DoubleValuesSource valuesSource)`
  Create `TaxonomyFacetFloatAssociations` against the specified index field.
  `TaxonomyFacetFloatAssociations(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction)`
  Create `TaxonomyFacetFloatAssociations` against the default index field.
  `TaxonomyFacetFloatAssociations(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction, DoubleValuesSource valuesSource)`
  Create `TaxonomyFacetFloatAssociations` against the default index field.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Number`
  `aggregate(Number existingVal, Number newVal)`
  Apply an aggregation to the two values and return the result.
  `boolean`
  `childrenLoaded()`
  Returns true if the (costly, and lazily initialized) children int[] was initialized.
  `protected Number`
  `getAggregationValue(int ordinal)`
  Get the aggregation value for this ordinal.
  `FacetResult`
  `getAllChildren(String dim, String... path)`
  Returns all child labels with non-zero counts under the specified path.
  `List<FacetResult>`
  `getAllDims(int topN)`
  Returns topN labels for any dimension that had hits, sorted by the number of hits that dimension matched; this is used for "sparse" faceting, where many different dimensions were indexed, for example depending on the type of document.
  `protected int`
  `getCount(int ordinal)`
  Get the count for this ordinal.
  `Number`
  `getSpecificValue(String dim, String... path)`
  Return the count or value for a specific path.
  `FacetResult`
  `getTopChildren(int topN, String dim, String... path)`
  Returns the topN child labels under the specified path.
  `protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.TopChildrenForPath`
  `getTopChildrenForPath(FacetsConfig.DimConfig dimConfig, int pathOrd, int topN)`
  Determine the top-n children for a specified dimension + path.
  `List<FacetResult>`
  `getTopDims(int topNDims, int topNChildren)`
  Returns labels for topN dimensions and their topNChildren sorted by the number of hits/aggregated values that dimension matched.
  `protected void`
  `initializeValueCounters()`
  `protected TopOrdAndNumberQueue.OrdAndValue`
  `insertIntoQueue(TopOrdAndNumberQueue q, TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord)`
  `protected TopOrdAndNumberQueue`
  `makeTopOrdAndNumberQueue(int topN)`
  Return a `TopOrdAndNumberQueue` of the appropriate type, i.e.
  `protected Number`
  `missingAggregationValue()`
  Return the value for a missing aggregation, i.e.
  `protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.AggregatedValue`
  `newAggregatedValue()`
  `protected void`
  `setCount(int ordinal, int newValue)`
  Set the count for this ordinal to `newValue`.
  `protected void`
  `setIncomingValue(TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord)`
  `boolean`
  `siblingsLoaded()`
  Returns true if the (costly, and lazily initialized) sibling int[] was initialized.
  `protected void`
  `updateValueFromRollup(int ordinal, int childOrdinal)`
  Roll-up the aggregation values from `childOrdinal` to `ordinal`.

  ### Methods inherited from class org.apache.lucene.facet.Facets

  `validateTopN`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### aggregationFunction

    protected final AssociationAggregationFunction aggregationFunction
    Aggregation function used for combining values.

  - ### valueComparator

    protected Comparator<Number> valueComparator

- ## Constructor Details

  - ### TaxonomyFacetFloatAssociations

    public TaxonomyFacetFloatAssociations(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction) throws IOException
    Create `TaxonomyFacetFloatAssociations` against the default index field.
    Throws:
      `IOException`

  - ### TaxonomyFacetFloatAssociations

    public TaxonomyFacetFloatAssociations(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction, DoubleValuesSource valuesSource) throws IOException
    Create `TaxonomyFacetFloatAssociations` against the default index field. Sources values from the provided `valuesSource`.
    Throws:
      `IOException`

  - ### TaxonomyFacetFloatAssociations

    public TaxonomyFacetFloatAssociations(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction) throws IOException
    Create `TaxonomyFacetFloatAssociations` against the specified index field.
    Throws:
      `IOException`

  - ### TaxonomyFacetFloatAssociations

    public TaxonomyFacetFloatAssociations(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc, AssociationAggregationFunction aggregationFunction, DoubleValuesSource valuesSource) throws IOException
    Create `TaxonomyFacetFloatAssociations` against the specified index field. Sources values from the provided `valuesSource`.
    Throws:
      `IOException`

- ## Method Details

  - ### initializeValueCounters

    protected void initializeValueCounters()

  - ### getAggregationValue

    protected Number getAggregationValue(int ordinal)
    Get the aggregation value for this ordinal.

  - ### aggregate

    protected Number aggregate(Number existingVal, Number newVal)
    Apply an aggregation to the two values and return the result.

  - ### updateValueFromRollup

    protected void updateValueFromRollup(int ordinal, int childOrdinal) throws IOException
    Roll-up the aggregation values from `childOrdinal` to `ordinal`. Overrides should probably call this to update the counts. Overriding allows us to work with primitive types for the aggregation values, keeping aggregation efficient.
    Throws:
      `IOException`

  - ### makeTopOrdAndNumberQueue

    protected TopOrdAndNumberQueue makeTopOrdAndNumberQueue(int topN)
    Return a `TopOrdAndNumberQueue` of the appropriate type, i.e. a `TopOrdAndIntQueue` or a `TopOrdAndFloatQueue`.

  - ### missingAggregationValue

    protected Number missingAggregationValue()
    Return the value for a missing aggregation, i.e. `-1` or `-1f`.

  - ### setIncomingValue

    protected void setIncomingValue(TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord)

  - ### newAggregatedValue

    protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.AggregatedValue newAggregatedValue()

  - ### setCount

    protected void setCount(int ordinal, int newValue)
    Set the count for this ordinal to `newValue`.

  - ### getCount

    protected int getCount(int ordinal)
    Get the count for this ordinal.

  - ### childrenLoaded

    public boolean childrenLoaded()
    Returns true if the (costly, and lazily initialized) children int[] was initialized.
    WARNING: This API is experimental and might change in incompatible ways in the next release.

  - ### siblingsLoaded

    public boolean siblingsLoaded()
    Returns true if the (costly, and lazily initialized) sibling int[] was initialized.
    WARNING: This API is experimental and might change in incompatible ways in the next release.

  - ### getAllChildren

    public FacetResult getAllChildren(String dim, String... path) throws IOException
    Description copied from class: `Facets`
    Returns all child labels with non-zero counts under the specified path. Users should make no assumptions about ordering of the children. Returns null if the specified path doesn't exist or if this dimension was never seen.
    Specified by:
      `getAllChildren` in class `Facets`
    Throws:
      `IOException`

  - ### insertIntoQueue

    protected TopOrdAndNumberQueue.OrdAndValue insertIntoQueue(TopOrdAndNumberQueue q, TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord)

  - ### getTopChildrenForPath

    protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.TopChildrenForPath getTopChildrenForPath(FacetsConfig.DimConfig dimConfig, int pathOrd, int topN) throws IOException
    Determine the top-n children for a specified dimension + path. Results are in an intermediate form.
    Throws:
      `IOException`

  - ### getTopChildren

    public FacetResult getTopChildren(int topN, String dim, String... path) throws IOException
    Description copied from class: `Facets`
    Returns the topN child labels under the specified path. Returns null if the specified path doesn't exist or if this dimension was never seen.
    Specified by:
      `getTopChildren` in class `Facets`
    Throws:
      `IOException`

  - ### getSpecificValue

    public Number getSpecificValue(String dim, String... path) throws IOException
    Description copied from class: `Facets`
    Return the count or value for a specific path. Returns -1 if this path doesn't exist, else the count.
    Specified by:
      `getSpecificValue` in class `Facets`
    Throws:
      `IOException`

  - ### getAllDims

    public List<FacetResult> getAllDims(int topN) throws IOException
    Description copied from class: `Facets`
    Returns topN labels for any dimension that had hits, sorted by the number of hits that dimension matched; this is used for "sparse" faceting, where many different dimensions were indexed, for example depending on the type of document.
    Specified by:
      `getAllDims` in class `Facets`
    Throws:
      `IOException`

  - ### getTopDims

    public List<FacetResult> getTopDims(int topNDims, int topNChildren) throws IOException
    Description copied from class: `Facets`
    Returns labels for topN dimensions and their topNChildren sorted by the number of hits/aggregated values that dimension matched. Results should be the same as calling getAllDims and then only using the first topNDims. Note that dims should be configured as requiring dim counts if using this functionality to ensure accurate counts are available (see: `FacetsConfig.setRequireDimCount(String, boolean)`).

    Sub-classes may want to override this implementation with a more efficient one if they are able.

    Overrides:
      `getTopDims` in class `Facets`
    Throws:
      `IOException`