Class CmsSearchCategoryCollector

java.lang.Object
org.apache.lucene.search.SimpleCollector
org.opencms.search.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 final String
    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

    Modifier and Type
    Method
    Description
    void
    collect(int id)
     
    protected void
    doSetNextReader(org.apache.lucene.index.LeafReaderContext ctx)
     
    static final String
    Convenience method to format a map of categories in a nice 2 column list, for example for display of debugging output.
    Returns the category count result, the returned map contains Strings (category names) mapped to an Integer (the count).
    org.apache.lucene.search.ScoreMode
     
     

    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.Collector

    setWeight

    Methods inherited from interface org.apache.lucene.search.LeafCollector

    collect, competitiveIterator, finish
  • Field Details

  • Constructor Details

    • CmsSearchCategoryCollector

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

      Parameters:
      searcher - the index searcher used
  • Method Details

    • formatCategoryMap

      public static final String formatCategoryMap(Map<String,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

      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 String toString()
      Overrides:
      toString in class Object
      See Also:
    • 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)