2013-02-07 94 views
0

我的模式是類似下面根據另一個索引字段計算分數?

<fields> 
    <field name="ProductId" type="int" indexed="true" stored="true" />  
    <field name="ProductName" type="string" indexed="true" stored="true" required="true" /> 
    <field name="ProductDesription" type="string" indexed="true" stored="true" required="true" /> 
    <field name="ProductRating" type="int" indexed="true" stored="true" required="true" /> 
</fields> 

產品名稱將以Q參數到Solr傳遞。 有沒有一種方法可以影響基於「ProductRating」的評分而不是作爲查詢參數傳遞?

或者我需要去solr源代碼並更改排名算法?

請引導我。

在此先感謝

回答

1

如果您想通過ProductRating進行排序,然後只需追加另一查詢參數是這樣的: q=ProductName:book&sort=ProductRating desc也可以使用ProductRatingfunction query影響得分。

0

您可以根據產品評分提升結果。

檢查例如Boost Score或如果您正在使用Dismax解析器檢查參數Boost Query

你的病情,你可以嘗試bq=ProductRating^2.0

你應該使用的產品名稱和產品類型增壓的組合,以獲得正確的結果,用不同的權重以帳戶的搜索其他,因爲在你的情況下,它只是一個排序爲答覆@阿倫

相關問題