2012-02-16 40 views
2

我目前正在寻找更多像这样的功能基于我的索引中的多个字段上的功能。Solr更多此类(MLT)不返回结果

我目前的配置如下: Haystack | PySolr | Solr

对于这部分,我使用PySolr并将参数传递给more_like_this函数。回应找到文件但没有任何相关结果。这是为什么?

这里是我打的网址:

http://localhost:8080/solr/mlt?q=django_id:12123412&mlt.fl=industry_ids,loc_state,amount,sector_id&mlt.interestingTerms=details 

这里是我的Solr响应:

<response> 
<object type="{XXXXXX-0F1D-4F28-AAA2-XXXXXXXXXXX}" cotype="cs" id="cosymantecbfw" style="width: 0px; height: 0px; display: block;"/> 
<lst name="responseHeader"> 
<int name="status">0</int> 
<int name="QTime">24</int> 
</lst> 
<result name="match" numFound="1" start="0"> 
    <doc>...</doc> 
</result> 
<result name="response" numFound="0" start="0"/> 
<lst name="interestingTerms"/> 
</response> 

solrconfig.xml中

<!-- More Like This --> 
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler"> 
</requestHandler> 

schema.xml中

<field name="award_amount" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" /> 
<field name="estatus" type="slong" indexed="true" stored="true" multiValued="false" termVectors="true"/> 
<field name="loc_state" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/> 
<field name="orgtype_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true" /> 
<field name="sector_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/> 
<field name="industry_ids" type="string" indexed="true" stored="true" multiValued="true" termVectors="true" /> 
<field name="award_amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" /> 
<field name="sector_id_exact" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/> 
<field name="amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true"/> 

任何帮助将不胜感激!

回答

7

您的文本字段必须具有类型text,它们处理它们以使它们可以搜索string字段按原样存储和查询,因此无法搜索,因此它们对MLT无效。

参照复制字段如果您曾经想存储与textstring(例如分面)相同的数据。


我看到你也打算找到最接近我们查询的号码。 MLT是不正确的。你想为此编写一个函数查询SolR : More Like This on number fields

+4

我意识到我的mlt.mintf和mlt.mindf设置太高,导致我无法接收结果。 – Naqeeb 2012-02-23 05:03:16