How can I do a fuzzy search using django-haystack and the elasticsearch backend? How can I do a fuzzy search using django-haystack and the elasticsearch backend? elasticsearch elasticsearch

How can I do a fuzzy search using django-haystack and the elasticsearch backend?


No need to fork Haystack, you can update that method in your own backend (for more details, see Stretching Haystack's ElasticSearch Backend). The build_search_kwargs method returns a dictionary so you can just modify the original return value.

Disclaimer: this code is just an example of how you could update your own backend, not how to implement fuzzy search.

class FuzzyBackend(ElasticsearchSearchBackend):    def build_search_kwargs(self, query_string, **kwargs):        fuzzy = kwargs.pop('fuzzy', False)        fuzzy_field = kwargs.pop('min_similarity', '')        search_kwargs = super(FuzzyBackend, self).build_search_kwargs(                query_string, kwargs)        if fuzzy:            search_kwargs = {'fuzzy': {fuzzy_field: query_string}}        return search_kwargs