Something along these lines:

public class WildcardFilter extends Filter {
   private Term term;

   public WildcardFilter(Term term) {
       this.term = term;
   }

   @Override
   public BitSet bits(IndexReader reader) throws IOException {
       BitSet bits = new BitSet();
       WildcardTermEnum enumerator = new WildcardTermEnum(reader, term);
       TermDocs termDocs = reader.termDocs();

       try {
           do {
               Term term = enumerator.term();

               if (term != null) {
                   termDocs.seek(term);

                   while (termDocs.next()) {
                       bits.set(termDocs.doc());
                   }
               } else {
                   break;
               }
           } while (enumerator.next());
       } finally {
           termDocs.close();
           enumerator.close();
       }

       return bits;
   }
}

- Mark

Beard, Brian wrote:
I'm trying to over-ride QueryParser.getWildcardQuery to use filtering.

I'm missing something, because the following still gets the
maxBooleanClauses limit.

I guess the terms are still expanded even though the query is wrapped in
a filter. How do I avoid the term expansion altogether? Is there a
built-in way to do this?

protected Query getWildcardQuery(String field, String termStr)
        throws ParseException {
                
        Query wildcardQuery = new WildcardQuery(new Term(field,
termStr));

        QueryWrapperFilter queryWrapperFilter = new
QueryWrapperFilter(wildcardQuery);

        ConstantScoreQuery constantScoreQuery = new
ConstantScoreQuery(queryWrapperFilter);

        return constantScoreQuery;

}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to