@Override
public int countMatches(Query query, Predicate<DocId> idFilter) throws InterruptedException {
BlockingDeque<QueryMatcher> queue = index.getQueryMatcherPool();
QueryMatcher matcher = queue.takeFirst();
try {
return matcher.countMatches(query, idFilter);
} finally {
queue.putFirst(matcher);
}
}