我的架构如下所示
<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源代码并更改排名算法?
请指导我。
提前致谢
答案 0 :(得分:1)
如果您想按ProductRating
排序,那么只需添加另一个查询参数,如下所示:
q=ProductName:book&sort=ProductRating desc
或者您可以ProductRating
使用{{1}}来影响分数。
答案 1 :(得分:0)
您可以根据产品评级来提升结果。
检查例如Boost Score或者如果您正在使用Dismax解析器检查参数Boost Query
根据您的情况,您可以尝试bq=ProductRating^2.0
您应该在产品名称和产品类型上使用boost的组合,以获得具有不同权重的正确结果,以便在搜索其他内容时进行搜索,因为在您的情况下,它只是@Arun回复的排序