'Return questions that are \'morelikethis\' one'

@property
def related_questions(self):

    if (not self.product):
        return []
    key = ('questions_question:related_questions:%s' % self.id)
    questions = cache.get(key)
    if (questions is not None):
        statsd.incr('questions.related_questions.cache.hit')
        log.debug('Getting    MLT    questions    for    {question}    from    cache.'.format(question=repr(self)))
        return questions
    try:
        statsd.incr('questions.related_questions.cache.miss')
        max_age = settings.SEARCH_DEFAULT_MAX_QUESTION_AGE
        start_date = (int(time.time()) - max_age)
        s = self.get_mapping_type().search()
        questions = s.values_dict('id', 'question_title', 'url').filter(question_locale=self.locale, product__in=[self.product.slug], question_has_helpful=True, created__gte=start_date).query(__mlt={'fields': ['question_title', 'question_content'], 'like_text': self.title, 'min_term_freq': 1, 'min_doc_freq': 1})[:3]
        questions = list(questions)
        cache.add(key, questions)
    except ES_EXCEPTIONS:
        statsd.incr('questions.related_questions.esexception')
        log.exception('ES    MLT    related_questions')
        questions = []
    return questions
