@Override
 public Spans getSpans(final LeafReaderContext context, Postings requiredPostings)
     throws IOException {
   Spans matchSpans = matchWeight.getSpans(context, requiredPostings);
   return (matchSpans == null)
       ? null
       : new FilterSpans(matchSpans) {
         @Override
         protected AcceptStatus accept(Spans candidate) throws IOException {
           return acceptPosition(candidate);
         }
       };
 }
 @Override
 public void extractTermContexts(Map<Term, TermContext> contexts) {
   matchWeight.extractTermContexts(contexts);
 }
 @Override
 public void extractTerms(Set<Term> terms) {
   matchWeight.extractTerms(terms);
 }