org.apache.lucene.spelt
Class SimpleQueryRewriter

Object
  extended by SimpleQueryRewriter
Direct Known Subclasses:
QuerySpeller

public abstract class SimpleQueryRewriter
extends Object

Traverses and rewrites simple Lucene queries. This includes boolean and phrase queries, but not much else. Very useful for extracting and/or changing the terms in a query. Usually you derive a class and then override rewrite(Term) to do what you need.

If you need to handle other types of queries, derive a class and provide a rewriteQuery(Query) method that dispatches to your custom rewriting methods.

Author:
Martin Haye

Constructor Summary
SimpleQueryRewriter()
           
 
Method Summary
protected  Query rewrite(BooleanQuery bq)
          Rewrite a BooleanQuery.
protected  Query rewrite(PhraseQuery pq)
          Rewrite a phrase query.
protected  Term rewrite(Term t)
          Rewrite a term (e.g. part of a TermQuery or PhraseQuery).
protected  Query rewrite(TermQuery q)
          Rewrite a term query.
 Query rewriteQuery(Query q)
          Rewrite a query of any supported type.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleQueryRewriter

public SimpleQueryRewriter()
Method Detail

rewriteQuery

public Query rewriteQuery(Query q)
Rewrite a query of any supported type.

Parameters:
q - Query to rewrite
Returns:
A new query, or 'q' unchanged if no change was needed.

rewrite

protected Query rewrite(BooleanQuery bq)
Rewrite a BooleanQuery.

Parameters:
bq - The query to rewrite
Returns:
Rewritten version, or 'bq' unchanged if no changed needed.

rewrite

protected Query rewrite(PhraseQuery pq)
Rewrite a phrase query. The base class does nothing.

Parameters:
pq - The query to rewrite
Returns:
Rewritten version, or 'pq' unchanged if no change needed.

rewrite

protected Query rewrite(TermQuery q)
Rewrite a term query. The base class rewrites the term itself.

Parameters:
q - The query to rewrite
Returns:
Rewritten version, or 'q' unchanged if no change needed.

rewrite

protected Term rewrite(Term t)
Rewrite a term (e.g. part of a TermQuery or PhraseQuery). The base class does nothing.

Parameters:
t - The term to rewrite
Returns:
Rewritten version, or 't' unchanged if no change needed.