忽略TF / IDF在Solr的查询时间(Ignore tf/idf at query time i

2019-07-04 23:00发布

我想,以提高基于字段值特定文档。 它一般工作正常,但有些文件返回一个更高的分数,即使他们有一个更小的提升值。

调试与查询后debugQuery=on请求参数我已经注意到, idf函数返回一个特定的文件,这是影响整体分数更高的分数。

有没有一种方法在查询时忽略TF / IDF得分?

Answer 1:

你要创建一个自定义相似 ,其覆盖TF和IDF的方法,并在地方DefaultSimilarity的使用它。

就像是:

class CustomSimilarity extends DefaultSimilarity {

    @Override
    public float tf(float freq) {
        return 1.0;
    }

    @Override
    public float tf(int freq) {
        return 1.0;
    }

    @Override
    // Note the signature of this method may now take longs:
    //   public float idf(long docFreq, long numDocs)
    public float idf(int docFreq, int numDocs) {
        return 1.0;
    }
}

集它使用类似在schema.xml中:

<similarity class="myorg.mypackage.CustomSimilarity"/>


文章来源: Ignore tf/idf at query time in Solr
标签: solr lucene