com.atlassian.jira.issue.statistics.util
Class OneDimensionalObjectHitCollector
java.lang.Object
org.apache.lucene.search.Collector
com.atlassian.jira.issue.statistics.util.OneDimensionalObjectHitCollector
public class OneDimensionalObjectHitCollector
- extends org.apache.lucene.search.Collector
A HitCollector that creates a doc -> object mapping. This is useful for collecting documents where there are a
limited number of terms. The caching also ensures that if multiple searches sort on the same terms, the doc ->
object mapping is maintained.
This HitCollector can be quite memory intensive, however the cache is stored with a weak reference, so it will be
garbage collected.
This HitCollector differs from OneDimensionalTermHitCollector
in that it performs the term -> object
conversion here, rather than later. This is more expensive, but useful for StatisticsMappers that perform some sort
of runtime conversion / translation (eg a StatisticsMapper that groups dates by Month, or groups users by email
domain name).
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
OneDimensionalObjectHitCollector
public OneDimensionalObjectHitCollector(StatisticsMapper statisticsMapper,
Map result)
- Creates a normal one-dimensional object hit collector. This is equivalent to
OneDimensionalObjectHitCollector(StatisticsMapper, Map, boolean)
} with
false provided for isUnique, which should be safe for use with all fields.
However, if it is known in advance that the field contains at most one value for the field,
then specifying isUnique will be more efficient.
- Parameters:
statisticsMapper
- provides the information required to map the fieldresult
- the map to which the result will be published
OneDimensionalObjectHitCollector
@ExperimentalApi
public OneDimensionalObjectHitCollector(StatisticsMapper statisticsMapper,
Map result,
boolean isUnique)
- Allows the caller to specify whether or not the hit collector may assume that the
field will never have more than one value for any issue. This allows the hit collector
to be much more efficient in gathering the data for that field, but it will give incorrect
results if the field can contain multiple values. Examples of suitable fields where
isUnique should be set include the project id, issue type, created date, and
resolved date.
- Parameters:
statisticsMapper
- provides the information required to map the fieldresult
- the map to which the result will be publishedisUnique
- true if the field can safely be assumed to have at most one value
for any issue; false if the field might be allowed to contain multiple values
per issue
collect
public void collect(int i)
- Specified by:
collect
in class org.apache.lucene.search.Collector
setScorer
public void setScorer(org.apache.lucene.search.Scorer scorer)
throws IOException
- Specified by:
setScorer
in class org.apache.lucene.search.Collector
- Throws:
IOException
setNextReader
public void setNextReader(org.apache.lucene.index.IndexReader reader,
int docBase)
throws IOException
- Specified by:
setNextReader
in class org.apache.lucene.search.Collector
- Throws:
IOException
acceptsDocsOutOfOrder
public boolean acceptsDocsOutOfOrder()
- Specified by:
acceptsDocsOutOfOrder
in class org.apache.lucene.search.Collector
Copyright © 2002-2013 Atlassian. All Rights Reserved.