如何在dismax中降低任期



全部:

我想做的是对内容字段中有"季节"的文档进行高评分,并对标题字段中有《季节》的文档进行重罚,并提升新创建的文档。

我想知道如何在Dismax(或eDismax)中做到这一点?感谢

qf参数的提升将提升字段,而不管字段中的值如何。为了增强内容字段中包含关键字"季节"的文档,请改用"bq"参数。例如

select?q=*&bq=content:season^50&bq=title:season^0.001

要增强新创建的文档,请使用类似的增强功能

recip(ms(NOW,mydatefield),3.16e-11,1,1)

其中mydatefield是包含文档创建或更新时间戳的字段。

有关boost函数使用的更多详细信息,请访问

使用dismax(或edismax)查询解析器时,查询字段是在qf参数下指定的,boosting也在那里应用。例如,在您的案例中:

select?q=season&qf=content^1000 title^0.001&defType=dismax

为了增强新创建的文档,您还需要指定当旧文档根据搜索条件获得更高分数时会发生什么。如果你的意思是,在分数相等的情况下,新文档应该在上面,然后添加

sort=score desc,created_at desc

假设您将插入时间存储在字段名"createdAt"下。

在DisMax中,您可以使用:来降低字段标题中包含"季节"一词的文档的相关性得分

    - ['bf', "if(tf(title,'season'),-5,0)"]

示例。如果一个文档的相关性分数在没有bf相关性提升的情况下为5.6,并且该文档的标题字段中有单词内容,则在应用bf后,该文档的相关性得分将为5.1,因为Solr在将乘积添加到相关性分数之前,将-5乘以queryNorm(对于结果集中的所有文档,queryNorm都是常数,并且不影响其顺序)。对于本例,假设queryNorm=0.1,那么5.6-(5*0.1)给出5.1。

上面的代码是yaml格式的,用于VuFind中的相关性设置。

相关内容

  • 没有找到相关文章

最新更新