Class FacetStream
- java.lang.Object
 - 
- org.apache.solr.client.solrj.io.stream.TupleStream
 - 
- org.apache.solr.client.solrj.io.stream.FacetStream
 
 
 
- 
- All Implemented Interfaces:
 Closeable,Serializable,AutoCloseable,Expressible,ParallelMetricsRollup,org.apache.solr.common.MapSerializable,org.apache.solr.common.MapWriter,org.apache.solr.common.NavigableObject,org.noggit.JSONWriter.Writable
public class FacetStream extends TupleStream implements Expressible, ParallelMetricsRollup
The FacetStream abstracts the output from the JSON facet API as a Stream of Tuples. This provides an alternative to the RollupStream which uses Map/Reduce to perform aggregations.- Since:
 - 6.0.0
 - See Also:
 - Serialized Form
 
 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreException 
 - 
 
- 
Field Summary
Fields Modifier and Type Field Description protected SolrClientCacheclientCacheprotected StreamContextcontextprotected TupleStreamparallelizedStream 
- 
Constructor Summary
Constructors Constructor Description FacetStream(String zkHost, String collection, org.apache.solr.common.params.SolrParams params, Bucket[] buckets, Metric[] metrics, FieldComparator[] bucketSorts, int bucketSizeLimit)FacetStream(StreamExpression expression, StreamFactory factory) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<TupleStream>children()voidclose()Bucket[]getBuckets()intgetBucketSizeLimit()StringgetCollection()intgetCost()intgetOffset()intgetOverfetch()protected Map<String,String>getRollupSelectFields(Metric[] rollupMetrics)The projection of dimensions and metrics from the rollup stream.intgetRows()TupleStreamgetSortedRollupStream(ParallelListStream plist, Metric[] rollupMetrics)Get the rollup for the parallelized streams that is sorted based on the original (non-parallel) sort order.StreamComparatorgetStreamSort()voidopen()TupleStream[]parallelize(List<String> partitions)Given a list of collections, return an array of TupleStream for each partition.Tupleread()voidsetStreamContext(StreamContext context)ExplanationtoExplanation(StreamFactory factory)Returns an explanation about the stream objectStreamExpressionParametertoExpression(StreamFactory factory)- 
Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, writeMap 
- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size 
- 
Methods inherited from interface org.apache.solr.client.solrj.io.stream.ParallelMetricsRollup
getRollupMetrics, openParallelStream 
 - 
 
 - 
 
- 
- 
Field Detail
- 
clientCache
protected transient SolrClientCache clientCache
 
- 
parallelizedStream
protected transient TupleStream parallelizedStream
 
- 
context
protected transient StreamContext context
 
 - 
 
- 
Constructor Detail
- 
FacetStream
public FacetStream(String zkHost, String collection, org.apache.solr.common.params.SolrParams params, Bucket[] buckets, Metric[] metrics, FieldComparator[] bucketSorts, int bucketSizeLimit) throws IOException
- Throws:
 IOException
 
- 
FacetStream
public FacetStream(StreamExpression expression, StreamFactory factory) throws IOException
- Throws:
 IOException
 
 - 
 
- 
Method Detail
- 
getBucketSizeLimit
public int getBucketSizeLimit()
 
- 
getRows
public int getRows()
 
- 
getOffset
public int getOffset()
 
- 
getOverfetch
public int getOverfetch()
 
- 
getBuckets
public Bucket[] getBuckets()
 
- 
getCollection
public String getCollection()
 
- 
toExpression
public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException
- Specified by:
 toExpressionin interfaceExpressible- Throws:
 IOException
 
- 
toExplanation
public Explanation toExplanation(StreamFactory factory) throws IOException
Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
 toExplanationin interfaceExpressible- Specified by:
 toExplanationin classTupleStream- Parameters:
 factory- Stream factory for this, contains information about the function name- Returns:
 - Explanation about this stream object containing explanations of any child stream objects
 - Throws:
 IOException- throw on any error
 
- 
setStreamContext
public void setStreamContext(StreamContext context)
- Specified by:
 setStreamContextin classTupleStream
 
- 
children
public List<TupleStream> children()
- Specified by:
 childrenin classTupleStream
 
- 
open
public void open() throws IOException- Specified by:
 openin classTupleStream- Throws:
 IOException
 
- 
close
public void close() throws IOException- Specified by:
 closein interfaceAutoCloseable- Specified by:
 closein interfaceCloseable- Specified by:
 closein classTupleStream- Throws:
 IOException
 
- 
read
public Tuple read() throws IOException
- Specified by:
 readin classTupleStream- Throws:
 IOException
 
- 
getCost
public int getCost()
- Overrides:
 getCostin classTupleStream
 
- 
getStreamSort
public StreamComparator getStreamSort()
- Specified by:
 getStreamSortin classTupleStream
 
- 
parallelize
public TupleStream[] parallelize(List<String> partitions) throws IOException
Description copied from interface:ParallelMetricsRollupGiven a list of collections, return an array of TupleStream for each partition.- Specified by:
 parallelizein interfaceParallelMetricsRollup- Parameters:
 partitions- A list of collections to parallelize metrics computation across.- Returns:
 - An array of TupleStream for each partition requested.
 - Throws:
 IOException- if an error occurs while constructing the underlying TupleStream for a partition.
 
- 
getSortedRollupStream
public TupleStream getSortedRollupStream(ParallelListStream plist, Metric[] rollupMetrics) throws IOException
Description copied from interface:ParallelMetricsRollupGet the rollup for the parallelized streams that is sorted based on the original (non-parallel) sort order.- Specified by:
 getSortedRollupStreamin interfaceParallelMetricsRollup- Parameters:
 plist- A parallel list stream to fetch metrics from each partition concurrentlyrollupMetrics- An array of metrics to rollup- Returns:
 - A rollup over parallelized streams that provide metrics; this is typically a SortStream.
 - Throws:
 IOException- if an error occurs while reading from the sorted stream
 
- 
getRollupSelectFields
protected Map<String,String> getRollupSelectFields(Metric[] rollupMetrics)
The projection of dimensions and metrics from the rollup stream.- Parameters:
 rollupMetrics- The metrics being rolled up.- Returns:
 - A mapping of fields produced by the rollup stream to their output name.
 
 
 - 
 
 -