'Do a normal kind of query, with a analyzer added.
:arg key: is the field being searched
:arg val: Is a two-tupe of the text to query for and the name of
the analyzer to use.
:arg action: is the type of query being performed, like match or
match_phrase'

def _with_analyzer(self, key, val, action):

    (query, analyzer) = val
    clause = {action: {key: {'query': query, 'analyzer': analyzer}}}
    boost = self.field_boosts.get(key)
    if (boost is not None):
        clause[action][key]['boost'] = boost
    return clause
