干草堆more_like_this返回所有

时间:2010-10-31 19:35:25

标签: django search solr django-haystack

我正在使用Django,haystack,solr来搜索。我已经能够搜索,现在我想使用more_like_this找到类似的项目。当我尝试使用more_like_this功能时,我会返回该模型类型的所有对象,而不仅仅是与其紧密匹配的对象。以下是一些代码,向您展示我如何使用它:

def resource_view(request, slug):
    resource = Resource.objects.get(slug=slug)
    versions = Version.objects.get_for_object(resource)
    related = SearchQuerySet().more_like_this(resource)
    add_comment_form = AddCommentForm()
    return render_to_response('resources/resource.html',
                              {'resource': resource,
                               'versions': versions,
                               'related': related,
                               'add_comment_form': add_comment_form},
                              context_instance=RequestContext(request))

显然我需要在solrconfig.xml文件中启用mlt。有人知道怎么做,或者有用的文章/教程吗?

1 个答案:

答案 0 :(得分:3)

陈旧的问题,但无论如何这里是答案:

正如John已经指出的那样,你需要在你的solr配置中添加更像这个处理程序(MLT)。这应该做,把它放在solrconfig.xml中,然后重新加载SOLR(Tomcat):

<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
<lst name="defaults">
  <str name="mlt.mintf">1</str>
  <str name="mlt.mindf">1</str>
  <str name="mlt.minwl">3</str>
  <str name="mlt.maxwl">15</str>
  <str name="mlt.maxqt">20</str>
  <str name="mlt.match.include">false</str>
</lst>
</requestHandler>