Class CmsSearchCategoryCollector

  • All Implemented Interfaces:
    org.apache.lucene.search.Collector, org.apache.lucene.search.LeafCollector

    public class CmsSearchCategoryCollector
    extends org.apache.lucene.search.SimpleCollector
    Collects category information during a search process.

    Please note: The calculation of the category count slows down the search time by an order of magnitude. Make sure that you only use this feature if it's really required! Be especially careful if your search result list can become large (> 1000 documents), since in this case overall system performance will certainly be impacted considerably when calculating the categories.

    Since:
    6.0.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String UNKNOWN_CATEGORY
      Category used in case the document belongs to no category.
    • Constructor Summary

      Constructors 
      Constructor Description
      CmsSearchCategoryCollector​(org.apache.lucene.search.IndexSearcher searcher)
      Creates a new category search collector instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void collect​(int id)  
      protected void doSetNextReader​(org.apache.lucene.index.LeafReaderContext ctx)  
      static java.lang.String formatCategoryMap​(java.util.Map<java.lang.String,​java.lang.Integer> categories)
      Convenience method to format a map of categories in a nice 2 column list, for example for display of debugging output.
      java.util.Map<java.lang.String,​java.lang.Integer> getCategoryCountResult()
      Returns the category count result, the returned map contains Strings (category names) mapped to an Integer (the count).
      org.apache.lucene.search.ScoreMode scoreMode()  
      java.lang.String toString()  
      • Methods inherited from class org.apache.lucene.search.SimpleCollector

        getLeafCollector, setScorer
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.apache.lucene.search.LeafCollector

        competitiveIterator
    • Constructor Detail

      • CmsSearchCategoryCollector

        public CmsSearchCategoryCollector​(org.apache.lucene.search.IndexSearcher searcher)
        Creates a new category search collector instance.

        Parameters:
        searcher - the index searcher used
    • Method Detail

      • formatCategoryMap

        public static final java.lang.String formatCategoryMap​(java.util.Map<java.lang.String,​java.lang.Integer> categories)
        Convenience method to format a map of categories in a nice 2 column list, for example for display of debugging output.

        Parameters:
        categories - the map to format
        Returns:
        the formatted category map
      • collect

        public void collect​(int id)
        Specified by:
        collect in interface org.apache.lucene.search.LeafCollector
        Specified by:
        collect in class org.apache.lucene.search.SimpleCollector
        See Also:
        SimpleCollector.collect(int)
      • getCategoryCountResult

        public java.util.Map<java.lang.String,​java.lang.Integer> getCategoryCountResult()
        Returns the category count result, the returned map contains Strings (category names) mapped to an Integer (the count).

        Returns:
        the category count result
      • scoreMode

        public org.apache.lucene.search.ScoreMode scoreMode()
        See Also:
        Collector.scoreMode()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • doSetNextReader

        protected void doSetNextReader​(org.apache.lucene.index.LeafReaderContext ctx)
        Overrides:
        doSetNextReader in class org.apache.lucene.search.SimpleCollector
        See Also:
        SimpleCollector.doSetNextReader(org.apache.lucene.index.LeafReaderContext)