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)
BitSet result=new BitSet(reader.maxDoc());
for (Iterator iter = termsList.iterator(); iter.hasNext();)
{
Term term = (Term) iter.next();
TermDocs td=reader.termDocs(term);
while (td.next())
{
result.set(td.doc());
}
}
return result;
int hash=9;
for (Iterator iter = termsList.iterator(); iter.hasNext();)
{
Term term = (Term) iter.next();
hash = 31 * hash + term.hashCode();
}
return hash;