min_doc_freq 在 More Like This 查询中如何工作?

How does min_doc_freq work in More Like This query?

据我了解,min_term_freq=2 查看输入文本,只有出现至少两次的术语才用于搜索。

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

The minimum document frequency below which the terms will be ignored from the input document. Defaults to 5.

但是我不明白那是什么意思?它查看输入文档还是索引的其余部分?

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

Therefore, the terms of the input document that have the highest tf-idf are good representatives of that document, and could be used within a disjunctive query (or OR) to retrieve similar documents.

这就是 More Like This 组件使用此数值统计信息的原因。

The MLT query simply extracts the text from the input document, analyzes it, usually using the same analyzer at the field, then selects the top K terms with highest tf-idf to form a disjunctive query of these terms.

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

话虽这么说,一个在一份文件中只出现一次的词也可能是错字、假文摘录或类似的东西:一个没有任何意义但意义重大的词 tf-idf重量,因此需要留下一些 "room" 以避免仅由 "theoretical meaningfulness" 引起的问题。

min_doc_freq 允许设置一个阈值,低于该阈值的 docFreq 小于此值的任何项(在选定的 K 个项中具有最高 tf-idf 的项)将被忽略输入文档。例如,min_doc_freq=5 term 必须至少出现在 5 个文档中,否则它将被排除在 MLT 查询之外。这在您希望 MLT 仅在查询的术语产生 well-addressed 主题(在至少 5 个文档中解决)时才希望 MLT 到 return 类似于给定文档的情况下很有用。

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

在相同的上下文中,您可以使用 max_doc_freq 来忽略高频词,例如停用词。

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