2014-02-19 72 views
0

我是SOLR的新手,我試圖根據參數「country」提高結果。如何根據參數提升SOLR中的結果?

例如,我想將該國家設置爲美國,並將美國的所有結果移到頂端。

這就是我現在正在做的事情,但它不起作用。 :

sort=query({!qf=market v='US'}) desc 

這是dismax請求處理程序是如何設置的:

<requestHandler name="dismax" class="solr.SearchHandler" > 
    <lst name="defaults"> 
    <str name="defType">dismax</str> 
    <str name="echoParams">explicit</str> 
    <float name="tie">0.01</float> 
    <str name="qf"> 
     text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4 
    </str> 
    <str name="pf"> 
     text^0.2 features^1.1 name^1.5 manu^1.4 manu_exact^1.9 
    </str> 
    <str name="bf"> 
     popularity^0.5 recip(price,1,1000,1000)^0.3 
    </str> 
    <str name="fl"> 
     id,name,price,score 
    </str> 
    <str name="mm"> 
     2&lt;-1 5&lt;-2 6&lt;90% 
    </str> 
    <int name="ps">100</int> 
    <str name="q.alt">*:*</str> 
    <!-- example highlighter config, enable per-query with hl=true --> 
    <str name="hl.fl">text features name</str> 
    <!-- for this field, we want no fragmenting, just highlighting --> 
    <str name="f.name.hl.fragsize">0</str> 
    <!-- instructs Solr to return the field itself if no query terms are 
      found --> 
    <str name="f.name.hl.alternateField">name</str> 
    <str name="f.text.hl.fragmenter">regex</str> <!-- defined below --> 
    </lst> 
    </requestHandler> 

回答

0

如果您正在使用dismax/edismax查詢分析器可以遵循KARTHIK建議的方式。

但是,即使您使用標準查詢解析器,也可以查詢q=market:US^2。這應該會給你更多優先的結果market:US

注:「市場」是一個領域,「美國」是它的價值。