【问题标题】:Lucene - Is it possible to change a query's score without changing the query itself?Lucene - 是否可以在不更改查询本身的情况下更改查询的分数?
【发布时间】:2019-08-28 03:15:15
【问题描述】:

我正在尝试使用其中一种可用算法在我的程序上实现相关性反馈功能。这需要通过将原始查询分数与所有相关文档的分数相加来更改原始查询分数。分数提高的查询在使用时应该给出新的结果。问题是,到目前为止,我还没有找到任何方法来更改 Lucene 上的查询分数。我错过了文档上的某些内容吗? Lucene 是否提供更改现有查询分数的方法?

【问题讨论】:

    标签: java lucene information-retrieval


    【解决方案1】:

    要修改查询的分数,您可以将该查询包装在另一个查询中。在 Lucene 中有几个选项可以做到这一点。两个非常相关的:

    • FunctionScoreQuery:提供静态方法来包装查询,将原始分数乘以另一个查询的结果或 DoubleValuesSource,从而为原始集中的每个文档产生提升。
    • 表达式模块:这允许您进行任意计算以生成分数。可以和上面的FunctionScoreQuery结合使用。 Check the docs for more info

    【讨论】:

    • 感谢您的回答。因此可以操纵查询分数。不过,我觉得这些工具不是我要找的。第一个乘以查询分数,而表达式模块更改分数的生成方式。我目前想将原始查询分数与其他一些值相加。 Lucene 是否也提供了一种方法来做到这一点?或者也许我实际上可以使用其中一种工具来做到这一点?
    猜你喜欢
    • 2013-01-02
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2017-04-29
    • 2021-11-03
    • 2018-06-27
    相关资源
    最近更新 更多