Elasticsearch评分禁用IDF

时间:2015-10-19 07:12:46

标签: elasticsearch tf-idf

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

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

如何为查询禁用/禁止IDF,但保留TF和Field Norm?

我遇到了Disable IDF calculation帖子,但它没有帮助我。在这种情况下,似乎常量分数查询也无法帮助我。

1 个答案:

答案 0 :(得分:4)

创建索引时,我们可以将自己的相似度计算方法放入设置部分,如果只需要禁用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;"`}

显示here