2012-02-16 39 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