2010-10-31 48 views
1

我正在使用Django,haystack,solr來搜索。我能夠搜索,現在我想用more_like_this找到類似的項目。當我嘗試使用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

它看起來像你對我使用得正確,但你有它在'solrconfig.xml'啓用? – 2010-10-31 19:58:17

+0

你是對的我沒有在solrconfig.xml中啓用它,你能指點我一個很好的教程或文章如何做到這一點? – asawilliams 2010-10-31 20:35:19

+0

你可以在你的solrconfig.xml中添加下面的答案配置,然後重啓太陽能 – soField 2011-11-14 18:56:50

回答

3

陳舊的問題,但這裏的反正答案:

正如約翰已經指出的那樣,你需要添加更多類似這樣的處理程序(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> 
+0

嗨!我有一個類似的問題,我已經正確地將此配置添加到solrconfig.xml,但te more_like_this方法是返回空結果。任何想法可能發生什麼? – acrespo 2013-05-23 16:55:49