org.apache.lucene.search

Class FuzzyQuery

Implemented Interfaces:
Cloneable, Serializable

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
static int
defaultPrefixLength

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

boolean
equals(Object o)
protected FilteredTermEnum
getEnum(IndexReader reader)
float
getMinSimilarity()
Returns the minimum similarity that is required for this query to match.
int
getPrefixLength()
Returns the non-fuzzy prefix length.
int
hashCode()
Query
rewrite(IndexReader reader)
String
toString(String field)

Methods inherited from class org.apache.lucene.search.MultiTermQuery

equals, getEnum, getTerm, hashCode, rewrite, toString

Methods inherited from class org.apache.lucene.search.Query

clone, combine, createWeight, extractTerms, getBoost, getSimilarity, mergeBooleanQueries, rewrite, setBoost, toString, toString, weight

Field Details

defaultMinSimilarity

public static final float defaultMinSimilarity
Field Value:
0.0f

defaultPrefixLength

public static final int defaultPrefixLength
Field Value:
0

Constructor Details

FuzzyQuery

public FuzzyQuery(Term term)

FuzzyQuery

public FuzzyQuery(Term term,
                  float minimumSimilarity)
            throws IllegalArgumentException

FuzzyQuery

public FuzzyQuery(Term term,
                  float minimumSimilarity,
                  int prefixLength)
            throws 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

Method Details

equals

public boolean equals(Object o)
Overrides:
equals in interface MultiTermQuery

getEnum

protected FilteredTermEnum getEnum(IndexReader reader)
            throws IOException
Overrides:
getEnum in interface MultiTermQuery

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 non-fuzzy prefix length. This is 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.

hashCode

public int hashCode()
Overrides:
hashCode in interface MultiTermQuery

rewrite

public Query rewrite(IndexReader reader)
            throws IOException
Overrides:
rewrite in interface MultiTermQuery

toString

public String toString(String field)
Overrides:
toString in interface MultiTermQuery

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