我不理解它们是什么,真的很希望有一个简单的解释,展示它们为世界带来了什么价值,而不涉及太多实现细节。
我不理解它们是什么,真的很希望有一个简单的解释,展示它们为世界带来了什么价值,而不涉及太多实现细节。
规范是得分计算的一部分。规范可以按任意方式计算,但主要区别在于它是在索引时间计算的。通常,影响得分的其他因素是基于文档与查询的匹配程度在查询时间内计算的。通过将norm
与文档一起存储,可以节省查询性能。
标准实现可以在Lucene的TFIDFSimilarity中找到并详细描述。在那里,它是设置字段加权值的乘积(如果在字段上设置了多个,则是所有字段加权值的乘积)和“lengthNorm”的乘积(这是一个设计用于更重视短文档匹配的计算因素)。由于它们都不依赖于查询的组成,因此在索引时间计算和存储是一个好选择。
然后,它们以压缩的、高度丢失的单字节格式存储(大约有1个有效小数位的精度)。
当您进行索引、处理源信息时,会将某些文档和字段视为比其他文档和字段更重要的内容。
例如,任务是监视同事的电子邮件。标题字段中的单词匹配比正文字段中的单词匹配更重要。我们通过将标题字段中的匹配数量乘以一个大于正文字段匹配所使用的数字来实现这一点。
+----+-------------+--------------+
| ID | Title | Body |
|----+-------------+--------------|
| 7 | Back Monday | Ben was sick |
| 8 | I'm sick | cover for me |
| 9 | Help | I am stuck |
+----+-------------+--------------+
因此,搜索“sick”并将标题匹配乘以4和正文匹配乘以2,并按最高分数排序 - 文档的排名为ID 8第一和ID 7第二(请参见下面的表1)。
+----+---------+--------+-----------------------+
| Id | Title | Body | Score |
| | Matches | Matches| |
|----+---------+--------+-----------------------|
| 8 | 1 | 0 | (1 * 4) + (0 * 2) = 4 |
| 7 | 0 | 1 | (0 * 4) + (1 * 2) = 2 |
+----+---------+--------+-----------------------+
我们要用4和2这两个数字来乘以比赛中的“规范”。