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]