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
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreExceptionNested classes/interfaces inherited from interface org.apache.solr.common.MapWriter
org.apache.solr.common.MapWriter.EntryWriter -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected SolrClientCacheprotected StreamContextprotected TupleStreamFields inherited from interface org.apache.solr.common.MapWriter
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionFacetStream(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
Modifier and TypeMethodDescriptionchildren()voidclose()Bucket[]intintgetCost()intintgetRollupSelectFields(Metric[] rollupMetrics) The projection of dimensions and metrics from the rollup stream.intgetRows()getSortedRollupStream(ParallelListStream plist, Metric[] rollupMetrics) Get the rollup for the parallelized streams that is sorted based on the original (non-parallel) sort order.voidopen()parallelize(List<String> partitions) Given a list of collections, return an array of TupleStream for each partition.read()voidsetStreamContext(StreamContext context) toExplanation(StreamFactory factory) Returns an explanation about the stream objecttoExpression(StreamFactory factory) Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, writeMapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.solr.common.MapWriter
jsonStr, toMap, writeMethods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _sizeMethods inherited from interface org.apache.solr.client.solrj.io.stream.ParallelMetricsRollup
getRollupMetrics, openParallelStream
-
Field Details
-
clientCache
-
parallelizedStream
-
context
-
-
Constructor Details
-
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
- Throws:
IOException
-
-
Method Details
-
getBucketSizeLimit
public int getBucketSizeLimit() -
getRows
public int getRows() -
getOffset
public int getOffset() -
getOverfetch
public int getOverfetch() -
getBuckets
-
getCollection
-
toExpression
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
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
- Specified by:
setStreamContextin classTupleStream
-
children
- Specified by:
childrenin classTupleStream
-
open
- Specified by:
openin classTupleStream- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
read
- Specified by:
readin classTupleStream- Throws:
IOException
-
getCost
public int getCost()- Overrides:
getCostin classTupleStream
-
getStreamSort
- Specified by:
getStreamSortin classTupleStream
-
parallelize
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
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.
-