Lucene IDF计算-是索引中所有字段中的文档数量,还是仅来自查询中的字段

时间:2018-09-21 21:56:58

标签: lucene tf-idf

在阅读Elastic文档时,混淆了如何在Lucene中计算IDF。用于IDF计算的部分有两个:

https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html

该术语多久出现在集合中的所有文档中?越频繁,重量越轻。常见的术语(例如和或)对相关性的贡献很小,因为它们出现在大多数文档中,而常见的术语(例如弹性河马)有助于我们放大最有趣的文档。反向文档频率计算如下:

idf(t) = 1 + log ( numDocs / (docFreq + 1)) 

术语t的反文档频率(idf)是索引中文档数量的对数,除以包含该术语的文档数量。

https://www.elastic.co/guide/en/elasticsearch/guide/current/relevance-intro.html 反文档频率 蜜月一词在索引中所有文档的 tweet 字段中出现了多少次?

这是我的问题: 可以说,我已经索引了3个文档,其中包含5个字段,其中doc1中有f1,f2,f3,doc2中有f2,f3,f4,而doc5中有f3,f4,f5。我的查询是针对f2字段的。

numDocs-是所有文档(#-3)还是仅存在字段的文档(#-2)? docFreq-这似乎很清楚。我认为这是该术语与f2字段匹配的文档数。可能是1或2。

希望它们在所有文档中均包含每个字段文字。谢谢

0 个答案:

没有答案