Class CategoryParentsStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class CategoryParentsStream
    extends org.apache.lucene.analysis.TokenFilter
    This class adds parents to a CategoryAttributesStream. The parents are added according to the PathPolicy and OrdinalPolicy from the FacetIndexingParams given in the constructor.
    By default, category properties are removed when creating parents of a certain category. However, it is possible to retain certain property types using addRetainableProperty(Class).
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Field Detail

      • categoryAttribute

        protected CategoryAttribute categoryAttribute
        An attribute containing all data related to the category
      • ordinalProperty

        protected OrdinalProperty ordinalProperty
        A category property containing the category ordinal
    • Constructor Detail

      • CategoryParentsStream

        public CategoryParentsStream​(CategoryAttributesStream input,
                                     TaxonomyWriter taxonomyWriter,
                                     FacetIndexingParams indexingParams)
        Constructor.
        Parameters:
        input - The input stream to handle, must be derived from CategoryAttributesStream.
        taxonomyWriter - The taxonomy writer to use for adding categories and retrieving their ordinals.
        indexingParams - The indexing params used for filtering parents.
    • Method Detail

      • incrementToken

        public final boolean incrementToken()
                                     throws IOException
        Specified by:
        incrementToken in class org.apache.lucene.analysis.TokenStream
        Throws:
        IOException
      • clearCategoryProperties

        protected void clearCategoryProperties()
        Clear the properties of the current CategoryAttribute attribute before setting the parent attributes.
        It is possible to retain properties of certain types the parent tokens, using addRetainableProperty(Class).
      • addRetainableProperty

        public void addRetainableProperty​(Class<? extends CategoryProperty> toRetain)
        Add a CategoryProperty class which is retained when creating parent tokens.
        Parameters:
        toRetain - The property class to retain.