Package org.apache.lucene.queries
Class TermsFilter
- java.lang.Object
-
- org.apache.lucene.search.Filter
-
- org.apache.lucene.queries.TermsFilter
-
public final class TermsFilter extends Filter
Constructs a filter for docs matching any of the terms added to this class. Unlike a RangeFilter this can be used for filtering on multiple terms that are not necessarily in a sequence. An example might be a collection of primary keys from a database query result or perhaps a choice of "category" labels picked by the end user. As a filter, this is much faster than the equivalent query (a BooleanQuery with many "should" TermQueries)
-
-
Constructor Summary
Constructors Constructor Description TermsFilter(String field, List<BytesRef> terms)
Creates a newTermsFilter
from the givenBytesRef
list for a single field.TermsFilter(String field, BytesRef... terms)
Creates a newTermsFilter
from the givenBytesRef
array for a single field.TermsFilter(List<Term> terms)
Creates a newTermsFilter
from the given list.TermsFilter(Term... terms)
Creates a newTermsFilter
from the given array.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
DocIdSet
getDocIdSet(AtomicReaderContext context, Bits acceptDocs)
Creates aDocIdSet
enumerating the documents that should be permitted in search results.int
hashCode()
String
toString()
-
-
-
Constructor Detail
-
TermsFilter
public TermsFilter(List<Term> terms)
Creates a newTermsFilter
from the given list. The list can contain duplicate terms and multiple fields.
-
TermsFilter
public TermsFilter(String field, List<BytesRef> terms)
Creates a newTermsFilter
from the givenBytesRef
list for a single field.
-
TermsFilter
public TermsFilter(String field, BytesRef... terms)
Creates a newTermsFilter
from the givenBytesRef
array for a single field.
-
TermsFilter
public TermsFilter(Term... terms)
Creates a newTermsFilter
from the given array. The array can contain duplicate terms and multiple fields.
-
-
Method Detail
-
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
-
-