org.apache.solr.request
Class SimpleFacets

java.lang.Object
  extended by org.apache.solr.request.SimpleFacets

public class SimpleFacets
extends Object

A class that generates simple Facet information for a request. More advanced facet implementations may compose or subclass this class to leverage any of it's functionality.


Nested Class Summary
static class SimpleFacets.CountPair<K extends Comparable<? super K>,V extends Comparable<? super V>>
          A simple key=>val pair whose natural order is such that higher vals come before lower vals.
 
Field Summary
protected  DocSet docs
          The main set of documents all facet counts should be relative to
protected  org.apache.solr.common.params.SolrParams params
          Configuration params behavior should be driven by
protected  ResponseBuilder rb
           
protected  SolrQueryRequest req
           
protected  SolrIndexSearcher searcher
          Searcher to use for all calculations
 
Constructor Summary
SimpleFacets(SolrQueryRequest req, DocSet docs, org.apache.solr.common.params.SolrParams params)
           
SimpleFacets(SolrQueryRequest req, DocSet docs, org.apache.solr.common.params.SolrParams params, ResponseBuilder rb)
           
 
Method Summary
 org.apache.solr.common.util.NamedList getFacetCounts()
          Looks at various Params to determing if any simple Facet Constraint count computations are desired.
 org.apache.solr.common.util.NamedList getFacetDateCounts()
          Returns a list of value constraints and the associated facet counts for each facet date field, range, and interval specified in the SolrParams
 org.apache.solr.common.util.NamedList getFacetFieldCounts()
          Returns a list of value constraints and the associated facet counts for each facet field specified in the params.
 org.apache.solr.common.util.NamedList getFacetQueryCounts()
          Returns a list of facet counts for each of the facet queries specified in the params
 org.apache.solr.common.util.NamedList getFacetTermEnumCounts(SolrIndexSearcher searcher, DocSet docs, String field, int offset, int limit, int mincount, boolean missing, String sort, String prefix)
          Returns a list of terms in the specified field along with the corresponding count of documents in the set that match that constraint.
static org.apache.solr.common.util.NamedList getFieldCacheCounts(SolrIndexSearcher searcher, DocSet docs, String fieldName, int offset, int limit, int mincount, boolean missing, String sort, String prefix)
          Use the Lucene FieldCache to get counts for each unique field value in docs.
static int getFieldMissingCount(SolrIndexSearcher searcher, DocSet docs, String fieldName)
          Returns a count of the documents in the set which do not have any terms for for the specified field.
 org.apache.solr.common.util.NamedList getTermCounts(String field)
           
protected  int rangeCount(SchemaField sf, Date low, Date high, boolean iLow, boolean iHigh)
           
protected  int rangeCount(SchemaField sf, String low, String high, boolean iLow, boolean iHigh)
          Macro for getting the numDocs of range over docs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

docs

protected DocSet docs
The main set of documents all facet counts should be relative to


params

protected org.apache.solr.common.params.SolrParams params
Configuration params behavior should be driven by


searcher

protected SolrIndexSearcher searcher
Searcher to use for all calculations


req

protected SolrQueryRequest req

rb

protected ResponseBuilder rb
Constructor Detail

SimpleFacets

public SimpleFacets(SolrQueryRequest req,
                    DocSet docs,
                    org.apache.solr.common.params.SolrParams params)

SimpleFacets

public SimpleFacets(SolrQueryRequest req,
                    DocSet docs,
                    org.apache.solr.common.params.SolrParams params,
                    ResponseBuilder rb)
Method Detail

getFacetCounts

public org.apache.solr.common.util.NamedList getFacetCounts()
Looks at various Params to determing if any simple Facet Constraint count computations are desired.

Returns:
a NamedList of Facet Count info or null
See Also:
getFacetQueryCounts(), getFacetFieldCounts(), getFacetDateCounts(), FacetParams.FACET

getFacetQueryCounts

public org.apache.solr.common.util.NamedList getFacetQueryCounts()
                                                          throws IOException,
                                                                 ParseException
Returns a list of facet counts for each of the facet queries specified in the params

Throws:
IOException
ParseException
See Also:
FacetParams.FACET_QUERY

getTermCounts

public org.apache.solr.common.util.NamedList getTermCounts(String field)
                                                    throws IOException
Throws:
IOException

getFacetFieldCounts

public org.apache.solr.common.util.NamedList getFacetFieldCounts()
                                                          throws IOException,
                                                                 ParseException
Returns a list of value constraints and the associated facet counts for each facet field specified in the params.

Throws:
IOException
ParseException
See Also:
FacetParams.FACET_FIELD, getFieldMissingCount(org.apache.solr.search.SolrIndexSearcher, org.apache.solr.search.DocSet, java.lang.String), getFacetTermEnumCounts(org.apache.solr.search.SolrIndexSearcher, org.apache.solr.search.DocSet, java.lang.String, int, int, int, boolean, java.lang.String, java.lang.String)

getFieldMissingCount

public static int getFieldMissingCount(SolrIndexSearcher searcher,
                                       DocSet docs,
                                       String fieldName)
                                throws IOException
Returns a count of the documents in the set which do not have any terms for for the specified field.

Throws:
IOException
See Also:
FacetParams.FACET_MISSING

getFieldCacheCounts

public static org.apache.solr.common.util.NamedList getFieldCacheCounts(SolrIndexSearcher searcher,
                                                                        DocSet docs,
                                                                        String fieldName,
                                                                        int offset,
                                                                        int limit,
                                                                        int mincount,
                                                                        boolean missing,
                                                                        String sort,
                                                                        String prefix)
                                                                 throws IOException
Use the Lucene FieldCache to get counts for each unique field value in docs. The field must have at most one indexed token per document.

Throws:
IOException

getFacetTermEnumCounts

public org.apache.solr.common.util.NamedList getFacetTermEnumCounts(SolrIndexSearcher searcher,
                                                                    DocSet docs,
                                                                    String field,
                                                                    int offset,
                                                                    int limit,
                                                                    int mincount,
                                                                    boolean missing,
                                                                    String sort,
                                                                    String prefix)
                                                             throws IOException
Returns a list of terms in the specified field along with the corresponding count of documents in the set that match that constraint. This method uses the FilterCache to get the intersection count between docs and the DocSet for each term in the filter.

Throws:
IOException
See Also:
FacetParams.FACET_LIMIT, FacetParams.FACET_ZEROS, FacetParams.FACET_MISSING

getFacetDateCounts

public org.apache.solr.common.util.NamedList getFacetDateCounts()
                                                         throws IOException,
                                                                ParseException
Returns a list of value constraints and the associated facet counts for each facet date field, range, and interval specified in the SolrParams

Throws:
IOException
ParseException
See Also:
FacetParams.FACET_DATE

rangeCount

protected int rangeCount(SchemaField sf,
                         String low,
                         String high,
                         boolean iLow,
                         boolean iHigh)
                  throws IOException
Macro for getting the numDocs of range over docs

Throws:
IOException
See Also:
SolrIndexSearcher.numDocs(org.apache.lucene.search.Query, org.apache.solr.search.DocSet), TermRangeQuery

rangeCount

protected int rangeCount(SchemaField sf,
                         Date low,
                         Date high,
                         boolean iLow,
                         boolean iHigh)
                  throws IOException
Throws:
IOException


Copyright © 2010 Apache Software Foundation. All Rights Reserved.