根据另一个索引字段计算得分?

时间:2013-02-07 14:40:37

标签: solr solrnet

我的架构如下所示

<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源代码并更改排名算法?

请指导我。

提前致谢

2 个答案:

答案 0 :(得分:1)

如果您想按ProductRating排序,那么只需添加另一个查询参数,如下所示: q=ProductName:book&sort=ProductRating desc或者您可以ProductRating使用{{1}}来影响分数。

答案 1 :(得分:0)

您可以根据产品评级来提升结果。

检查例如Boost Score或者如果您正在使用Dismax解析器检查参数Boost Query

根据您的情况,您可以尝试bq=ProductRating^2.0

您应该在产品名称和产品类型上使用boost的组合,以获得具有不同权重的正确结果,以便在搜索其他内容时进行搜索,因为在您的情况下,它只是@Arun回复的排序