min_doc_freq如何在“类似此查询”中工作?

时间:2019-07-13 05:21:23

标签: elasticsearch indexing lucene morelikethis

据我了解,min_term_freq=2会查看输入文本,并且该词仅在出现至少两次时才用于搜索。

但是min_doc_freq是什么意思?文档说

  

最小文档频率,低于此频率时,输入文档中的术语将被忽略。默认值为5。

但是我不知道这意味着什么?它是查看输入文档还是索引的其余部分?

1 个答案:

答案 0 :(得分:1)

Lucene评分公式使用TF-IDF权重来反映单词对语料库中文档的意义。

  

因此,输入文档中条款最高的条款   tf-idf是该文档的良好代表,可以使用   在析取查询(或OR)中检索相似的文档。

这就是为什么类似这样组件使用此数字统计的原因。

  

MLT查询只是从输入文档中提取文本,进行分析   通常在现场使用相同的分析仪,然后选择顶部   带有最高tf-idf的K个词构成这些词的析取查询   条款。

idf表示给定术语出现的文档数量的倒数:出现在每个文档中的术语将被认为是不相关的(文档频率较高,因此idf较低)。

也就是说,在一个文档中仅出现一次的单词也可能是错字,lorem ipsum摘录或类似的东西:一个没有任何意义但具有明显tf-idf权重的术语,因此需要离开一些“房间”以避免由“理论意义”引起的问题。

min_doc_freq允许设置一个阈值,低于该阈值的任何docFreq小于此值的单词(在所选的tf-idf最高的K个单词中)将被从输入文档中忽略。例如,min_doc_freq=5术语必须至少出现在5个文档中,否则将从MLT查询中排除。这在您希望MLT仅在查询条件产生一个地址明确的主题(至少在5个文档中解决)的情况下返回与给定文档相似的文档的情况下很有用。

那么,它是查看输入文档还是索引的其余部分?
两者:从输入文档开始,它需要前K个词,并且每个词都需要检查它们的docFreq,这是针对索引查询的TermStatistics。

在相同的上下文中,您将使用max_doc_freq来忽略频繁出现的单词,例如停用词。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html