Elasticsearch评分禁用IDF

use*_*332 11 tf-idf elasticsearch

我正在使用ES搜索使用模糊搜索技术的大量人名.

TF适用于评分,但在这种情况下我并不需要IDF.这真的是在稀释分数.我仍然希望将TF和Field Norm应用于分数.

如何为我的查询禁用/抑制IDF,但保留TF和Field Norm?

我遇到了禁用IDF计算线程,但它没有帮助我.在这种情况下,似乎常数分数查询也无法帮助我.

小智 5

创建索引时,我们可以将自己的相似度计算方法放入设置部分,如果您只需要禁用IDF并将其他设置用作默认设置,则可以编写一个简单的脚本,例如:

"script": {"source": "double tf = Math.sqrt(doc.freq); double idf = 1.0; double norm = 1/Math.sqrt(doc.length); return query.boost * tf * idf * norm;"`}
Run Code Online (Sandbox Code Playgroud)

这显示在这里