Package org.apache.lucene.search
Class CachingWrapperFilter
- java.lang.Object
-
- org.apache.lucene.search.Filter
-
- org.apache.lucene.search.CachingWrapperFilter
-
-
Field Summary
Fields Modifier and Type Field Description protected static DocIdSet
EMPTY_DOCIDSET
An emptyDocIdSet
instance
-
Constructor Summary
Constructors Constructor Description CachingWrapperFilter(Filter filter)
Wraps another filter's result and caches it.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DocIdSet
cacheImpl(DocIdSetIterator iterator, AtomicReader reader)
Default cache implementation: usesWAH8DocIdSet
.protected DocIdSet
docIdSetToCache(DocIdSet docIdSet, AtomicReader reader)
Provide the DocIdSet to be cached, using the DocIdSet provided by the wrapped Filter.boolean
equals(Object o)
DocIdSet
getDocIdSet(AtomicReaderContext context, Bits acceptDocs)
Creates aDocIdSet
enumerating the documents that should be permitted in search results.Filter
getFilter()
Gets the contained filter.int
hashCode()
long
sizeInBytes()
Returns total byte size used by cached filters.String
toString()
-
-
-
Field Detail
-
EMPTY_DOCIDSET
protected static final DocIdSet EMPTY_DOCIDSET
An emptyDocIdSet
instance
-
-
Constructor Detail
-
CachingWrapperFilter
public CachingWrapperFilter(Filter filter)
Wraps another filter's result and caches it.- Parameters:
filter
- Filter to cache results of
-
-
Method Detail
-
getFilter
public Filter getFilter()
Gets the contained filter.- Returns:
- the contained filter.
-
docIdSetToCache
protected DocIdSet docIdSetToCache(DocIdSet docIdSet, AtomicReader reader) throws IOException
Provide the DocIdSet to be cached, using the DocIdSet provided by the wrapped Filter.This implementation returns the given
DocIdSet
, ifDocIdSet.isCacheable()
returnstrue
, else it callscacheImpl(DocIdSetIterator,AtomicReader)
Note: This method returns EMPTY_DOCIDSET if the given docIdSet is
null
or ifDocIdSet.iterator()
returnnull
. The empty instance is use as a placeholder in the cache instead of thenull
value.- Throws:
IOException
-
cacheImpl
protected DocIdSet cacheImpl(DocIdSetIterator iterator, AtomicReader reader) throws IOException
Default cache implementation: usesWAH8DocIdSet
.- Throws:
IOException
-
getDocIdSet
public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptDocs) throws IOException
Description copied from class:Filter
Creates aDocIdSet
enumerating the documents that should be permitted in search results. NOTE: null can be returned if no documents are accepted by this Filter.Note: This method will be called once per segment in the index during searching. The returned
DocIdSet
must refer to document IDs for that segment, not for the top-level reader.- Specified by:
getDocIdSet
in classFilter
- Parameters:
context
- aAtomicReaderContext
instance opened on the index currently searched on. Note, it is likely that the provided reader info does not represent the whole underlying index i.e. if the index has more than one segment the given reader only represents a single segment. The provided context is always an atomic context, so you can callAtomicReader.fields()
on the context's reader, for example.acceptDocs
- Bits that represent the allowable docs to match (typically deleted docs but possibly filtering other documents)- Returns:
- a DocIdSet that provides the documents which should be permitted or
prohibited in search results. NOTE:
null
should be returned if the filter doesn't accept any documents otherwise internal optimization might not apply in the case an emptyDocIdSet
is returned. - Throws:
IOException
-
sizeInBytes
public long sizeInBytes()
Returns total byte size used by cached filters.
-
-