[英]How can I boost a result in SOLR based on a parameter?
我是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<-1 5<-2 6<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>
如果使用的是dismax / edismax查詢解析器,則可以按照Karthik建議的方法進行。
但是,即使您使用標准查詢解析器,也可以查詢q=market:US^2
。 這應該使您的結果在market:US
具有更高的優先級。
注意: “市場”是一個字段,“美國”是它的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.