org.apache.lucene.search
Class FuzzyQuery

java.lang.Object
  extended by org.apache.lucene.search.Query
      extended by org.apache.lucene.search.MultiTermQuery
          extended by org.apache.lucene.search.FuzzyQuery
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public final class FuzzyQuery
extends MultiTermQuery

Implements the fuzzy search query. The similiarity measurement is based on the Levenshtein (edit distance) algorithm.

See Also:
Serialized Form

Field Summary
static float defaultMinSimilarity
           
 
Constructor Summary
FuzzyQuery(Term term)
          Calls FuzzyQuery(term, 0.5f, 0).
FuzzyQuery(Term term, float minimumSimilarity)
          Calls FuzzyQuery(term, minimumSimilarity, 0).
FuzzyQuery(Term term, float minimumSimilarity, int prefixLength)
          Create a new FuzzyQuery that will match terms with a similarity of at least minimumSimilarity to term.
 
Method Summary
protected  FilteredTermEnum getEnum(IndexReader reader)
          Construct the enumeration to be used, expanding the pattern term.
 float getMinSimilarity()
          Returns the minimum similarity that is required for this query to match.
 int getPrefixLength()
          Returns the prefix length, i.e.
 java.lang.String toString(java.lang.String field)
          Prints a user-readable version of this query.
 
Methods inherited from class org.apache.lucene.search.MultiTermQuery
combine, getTerm, rewrite
 
Methods inherited from class org.apache.lucene.search.Query
clone, createWeight, getBoost, getSimilarity, mergeBooleanQueries, setBoost, toString, weight
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultMinSimilarity

public static final float defaultMinSimilarity
See Also:
Constant Field Values
Constructor Detail

FuzzyQuery

public FuzzyQuery(Term term,
                  float minimumSimilarity,
                  int prefixLength)
           throws java.lang.IllegalArgumentException
Create a new FuzzyQuery that will match terms with a similarity of at least minimumSimilarity to term. If a prefixLength > 0 is specified, a common prefix of that length is also required.

Parameters:
term - the term to search for
minimumSimilarity - a value between 0 and 1 to set the required similarity between the query term and the matching terms. For example, for a minimumSimilarity of 0.5 a term of the same length as the query term is considered similar to the query term if the edit distance between both terms is less than length(term)*0.5
prefixLength - length of common (non-fuzzy) prefix
Throws:
java.lang.IllegalArgumentException - if minimumSimilarity is > 1 or < 0 or if prefixLength < 0 or > term.text().length().

FuzzyQuery

public FuzzyQuery(Term term,
                  float minimumSimilarity)
           throws java.lang.IllegalArgumentException
Calls FuzzyQuery(term, minimumSimilarity, 0).

Throws:
java.lang.IllegalArgumentException

FuzzyQuery

public FuzzyQuery(Term term)
Calls FuzzyQuery(term, 0.5f, 0).

Method Detail

getMinSimilarity

public float getMinSimilarity()
Returns the minimum similarity that is required for this query to match.

Returns:
float value between 0.0 and 1.0

getPrefixLength

public int getPrefixLength()
Returns the prefix length, i.e. the number of characters at the start of a term that must be identical (not fuzzy) to the query term if the query is to match that term.


getEnum

protected FilteredTermEnum getEnum(IndexReader reader)
                            throws java.io.IOException
Description copied from class: MultiTermQuery
Construct the enumeration to be used, expanding the pattern term.

Specified by:
getEnum in class MultiTermQuery
Throws:
java.io.IOException

toString

public java.lang.String toString(java.lang.String field)
Description copied from class: MultiTermQuery
Prints a user-readable version of this query.

Overrides:
toString in class MultiTermQuery


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.