Lucene-计分和有效载荷

Lucene-计分和有效载荷,lucene,Lucene,我们有一个应用程序,其中文档中的每个术语位置都与“引擎分数”关联。 然后,术语查询应根据文档中术语的“引擎分数”之和评分,而不是根据术语频率评分。 例如,平均发动机分数为100的术语频率为5,应等同于发动机分数为500的术语频率为1 我明白,如果我在有效载荷中保留每个位置的引擎分数,我将能够结合使用scorePayload和PayloadFunction的摘要版本来获得文档中某个术语的引擎分数总和,从而能够实现我的目标 此解决方案存在两个问题: 即使是最简单的术语查询也应该扫描positions

我们有一个应用程序,其中文档中的每个术语位置都与“引擎分数”关联。 然后,术语查询应根据文档中术语的“引擎分数”之和评分,而不是根据术语频率评分。 例如,平均发动机分数为100的术语频率为5,应等同于发动机分数为500的术语频率为1

我明白,如果我在有效载荷中保留每个位置的引擎分数,我将能够结合使用scorePayload和PayloadFunction的摘要版本来获得文档中某个术语的引擎分数总和,从而能够实现我的目标

此解决方案存在两个问题:

  • 即使是最简单的术语查询也应该扫描positions文件以获取有效负载,这可能是一个性能问题。 除了术语频率之外,我们更希望提前为每个文档的引擎分数总和编制索引。这是文档级别的某种有效负载。Lucene是否支持这一点,或者是否有其他解决方案

  • 短语出现的“引擎分数”定义为组成短语的术语的引擎分数的乘积。 因此,在scorePayload中,我需要短语中所有术语的有效负载,以便能够对短语的出现进行适当的评分

  • 据我所知,scorePayload的当前接口不提供此信息


    在Lucene中是否有其他方法可以实现这一点?

    文档级负载的一个解决方法是创建一个Lucene文档/您的文档,该文档只包含整个文档的引擎分数,作为一个特殊命名的字段(不同于所有其他Lucene文档字段名称)。然后,您可以在搜索过程中合并/提取该文档。不是很多解决方法,但确实如此。

    文档级负载的一个解决方法是创建一个Lucene文档/您的文档,该文档只包含整个文档的引擎分数,作为一个特殊命名的字段(不同于所有其他Lucene文档字段名)。然后,您可以在搜索过程中合并/提取该文档。这不是一个很好的解决办法,但它确实存在