首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用存在字段进行solr排序

问使用存在字段进行solr排序
EN

Stack Overflow用户
提问于 2019-01-08 10:15:48
回答 1查看 271关注 0票数 2

我正在用DataImportHandler从mysql数据库中加载Solr数据。每个文档都包含一个popularity字段(int类型),该字段是从另一个应用程序中计算出来并保存到mysql中的(该字段基于与应用程序域相关的一些规则)。

如何使用此值来提高solr的排名?和 solr score的popularity值正确吗?如何在这里使用高炉?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-08 12:10:54

一个很好的起点可能会起作用,就是把分数乘以一个次线性函数,这个函数会随着流行程度的增加(慢慢地)增加。例如,

代码语言:javascript
复制
newScore = score * log(1 + 0.5 * popularity)

要应用这个提升,您应该使用Solr的EDisMax查询解析器并使用以下值传递boost参数:

代码语言:javascript
复制
&boost=log(sum(1, product(0.5, popularity)))

这个领域的名字是受欢迎的。您不需要使用bf参数,因为您应该使用乘法助推,而不是加性助推。

添加1的原因是为了处理popularity=0 (因此,如果每个文档的流行度总是至少为1,则不需要添加1)。通过将0.5因子改变为其他值,可以增加或降低流行效应的强度。例如,可以使用因子2来增加效果:

代码语言:javascript
复制
newScore = score * log(1 + 2 * popularity)

9 / m可能有一个很好的因素,m应该是您所期望的中位受欢迎度,因为在这种情况下,“中位数文档”(在其受欢迎程度等于m的意义上)的提升将是1(也就是说,它的得分根本不会提高)。

再次,这只是一个起点,你将不得不尝试不同的促进功能,直到你找到一个表现良好的功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54089600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档