class FuzzyQuery(Query):
"""
A fuzzy based query that uses similarity based on Levenshtein (edit distance) algorithm.
Note
Warning: this query is not very scalable with its default prefix
length of 0 - in this case, every term will be enumerated and cause an
edit score calculation. Here is a simple example:
"""
_internal_name = "fuzzy"
def __init__(self, field, value, boost=None, min_similarity=0.5,
prefix_length=0, **kwargs):
super(FuzzyQuery, self).__init__(**kwargs)
self.field = field
self.value = value
self.boost = boost
self.min_similarity = min_similarity
self.prefix_length = prefix_length
def _serialize(self):
data = {
'value': self.value,
'min_similarity': self.min_similarity,
'prefix_length': self.prefix_length,
}
if self.boost:
data['boost'] = self.boost
return {self.field: data}
pip install https://github.com/aparo/pyes/archive/master.zip