def fuzzy_like_this(cls, like_text, fields=None, ignore_tf=None, max_query_terms=None, min_similarity=None, prefix_length=None, boost=None, analyzer=None):
        '''
        http://www.elasticsearch.org/guide/reference/query-dsl/flt-query.html
        Fuzzy like this query find documents that are "like" provided text by running it against one or more fields.

        > query = ElasticQuery().fuzzy_like_this('text like this one', fields=['name.first', 'name.last'], max_query_terms=12)
        > query
            {'fuzze_like_this': {'boost': 1.0,
              'fields': ['name.first', 'name.last'],
              'ifgnore_tf': False,
              'like_text': 'text like this one',
              'max_query_terms': 12,
              'min_similarity': 0.5,
              'prefix_length': 0}}

        '''
        instance = cls(fuzzy_like_this={'like_text': like_text})
        if fields is not None:
            instance['fuzzy_like_this']['fields'] = fields
        if ignore_tf is not None:
            instance['fuzzy_like_this']['ignore_tf'] = ignore_tf
        if max_query_terms is not None:
            instance['fuzzy_like_this']['max_query_terms'] = max_query_terms
        if min_similarity is not None:
            instance['fuzzy_like_this']['min_similarity'] = min_similarity
        if prefix_length is not None:
            instance['fuzzy_like_this']['prefix_length'] = prefix_length
        if boost is not None:
            instance['fuzzy_like_this']['boost'] = boost
        if analyzer is not None:
            instance['fuzzy_like_this']['analyzer'] = analyzer

        return instance