我正在使用ES搜索使用模糊搜索技术的大量人名列表。
TF适用于评分,但在这种情况下我并不需要IDF。这真的是在稀释分数。我仍然希望将TF和Field Norm应用于分数。
如何为查询禁用/禁止IDF,但保留TF和Field Norm?
我遇到了Disable IDF calculation帖子,但它没有帮助我。在这种情况下,似乎常量分数查询也无法帮助我。
答案 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。