我正在使用 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。有人知道如何做到这一点,或者有帮助的文章/教程吗?
陈旧的问题,但无论如何,这就是答案:
正如 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)