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

请指导我。

提前致谢

4

2 回答 2

1

如果您想按 排序ProductRating,那么只需像这样附加另一个查询参数: q=ProductName:book&sort=ProductRating desc或者您可以ProductRating函数查询中使用来影响分数。

于 2013-02-08T01:41:49.903 回答
0

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

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

根据你的情况你可以试试bq=ProductRating^2.0

您可能应该结合使用产品名称和产品类型的提升来获得具有不同权重的正确结果,以解释搜索,因为在您的情况下,它只是 @Arun 回复的排序

于 2013-02-08T05:16:17.490 回答