2013-02-07 60 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

你应该使用的产品名称和产品类型增压的组合,以获得正确的结果,用不同的权重以帐户的搜索其他,因为在你的情况下,它只是一个排序为答复@阿伦

相关问题