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