Module org.elasticsearch.server
Class LeafBucketCollectorBase
java.lang.Object
org.elasticsearch.search.aggregations.LeafBucketCollector
org.elasticsearch.search.aggregations.LeafBucketCollectorBase
- All Implemented Interfaces:
 org.apache.lucene.search.LeafCollector
A 
LeafBucketCollector that delegates all calls to the sub leaf
 aggregator and sets the scorer on its source of values if it implements
 ScorerAware.- 
Field Summary
Fields inherited from class org.elasticsearch.search.aggregations.LeafBucketCollector
NO_OP_COLLECTOR - 
Constructor Summary
Constructors - 
Method Summary
Methods inherited from class org.elasticsearch.search.aggregations.LeafBucketCollector
collect, isNoopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.lucene.search.LeafCollector
competitiveIterator 
- 
Constructor Details
- 
LeafBucketCollectorBase
- Parameters:
 sub- The leaf collector for sub aggregations.values- The values.ScorerAware.setScorer(org.apache.lucene.search.Scorable)will be called automatically on them if they implementScorerAware.
 
 - 
 - 
Method Details
- 
setScorer
- Specified by:
 setScorerin interfaceorg.apache.lucene.search.LeafCollector- Overrides:
 setScorerin classLeafBucketCollector- Throws:
 IOException
 - 
collect
Description copied from class:LeafBucketCollectorCollect the givendocin the bucket owned byowningBucketOrd.The implementation of this method metric aggregations is generally something along the lines of
array[owningBucketOrd] += loadValueFromDoc(doc)Bucket aggregations have more trouble because their job is to make new ordinals. So their implementation generally looks kind of like
long myBucketOrd = mapOwningBucketAndValueToMyOrd(owningBucketOrd, loadValueFromDoc(doc)); collectBucket(doc, myBucketOrd);Some bucket aggregations "know" how many ordinals each owning ordinal needs so they can map "densely". The
rangeaggregation, for example, can perform this mapping with something like:
Other aggregations don't know how many buckets will fall into any particular owning bucket. Thereturn rangeCount * owningBucketOrd + matchingRange(value);termsaggregation, for example, usesLongKeyedBucketOrdswhich amounts to a hash lookup.- Specified by:
 collectin classLeafBucketCollector- Throws:
 IOException
 
 -