Lucene - 得分和有效载荷

时间:2011-12-07 20:42:15

标签: lucene

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

据我所知,如果我保持有效负载中每个位置的引擎得分,我将能够使用scorePayload结合PayloadFunction的摘要版本来获取文档中术语的引擎得分之和,因此能够实现我的目标。

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

  1. 即使是最简单的术语查询也应扫描位置文件以获取有效负载,这可能是性能问题。 除了术语频率之外,我们更倾向于每个文档提前索引引擎分数的总和。这是文档级别的某种有效负载。 Lucene是否支持此问题或针对此问题采取任何其他解决方案?

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

  3. 据我所知,scorePayload的当前界面不提供此信息。

    Lucene还有另一种方法吗?

1 个答案:

答案 0 :(得分:-1)

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