@classmethod
def _process_keyword(cls, keyword):
    """Basic keyword search assume that the model have a name and tags fields to work out of the box for simple model."""
    keyword_cleaned = cls.clean_keyword(keyword)
    keyword_low = keyword_cleaned.replace('-', ' ').strip()
    analyzer = cls.DEFAULT_ANALYZER
    if keyword_cleaned:
        analyzer = cls.get_analyzer(keyword_cleaned)
    return {'bool': {'should': [{'query_string': {'query': '%s*' %
        keyword_low, 'fields': ['name^5', 'name.*^5', 'tags^2'],
        'default_operator': 'AND', 'analyzer': analyzer, 'fuzziness':
        'auto'}}, {'term': {'name.untouched': keyword}}, {'term': {
        'tags.untouched': keyword}}]}}
