Кажется, я не могу заставить тег more_like_this
в Haystack вернуть какие-либо результаты. Не уверен, что это связано с данными, которые я ввел, но я пробовал это с некоторыми документами, которые должны быть очень похожими.
Я убедился, что он не работает даже с таким довольно простым индексом:
class PaperIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
def get_model(self):
return Paper
Снова упрощенная модель выглядит так:
class Paper(Publishable):
title = models.CharField(max_length=255)
abstract = models.TextField()
def __unicode__(self):
return self.title
Шаблон поиска выглядит так:
{% autoescape off %}
{{ object.title }}
{{ object.abstract|striptags }}
{% endautoescape %}
На данный момент я просто смотрю, что в возвращаемом результате тега выглядит следующим образом:
{% more_like_this paper as related_papers limit 1 %}
{{ related_papers }}
Не уверен, есть ли что-то еще, что мне нужно сделать. В документах по эластичному поиску упоминается «Чтобы использовать функцию mlt, необходимо либо сохранить mlt_field, либо сохранить term_vector, либо включить источник». Однако я не уверен, что это означает в терминах Haystack.
Я должен отметить, что я не вижу никаких ошибок - просто я получаю пустой список/результирующий набор из more_like_this
.
О, и Elastic Search версии 1.1.1.