2

我正在使用 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。任何人都知道如何做到这一点,或者有帮助的文章/教程?

4

1 回答 1

4

过时的问题,但无论如何,这是答案:

正如 John 已经指出的那样,您需要将更像此处理程序 (MLT) 添加到您的 solr 配置中。这应该可以,把它放在你的 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>
于 2011-09-10T12:10:52.777 回答