我正在使用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。有人知道怎么做,或者有用的文章/教程吗?
答案 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>