Solr Custom相似度

Sti*_*985 7 solr similarity

我想在我的solr schema.xml中设置我自己的自定义相似度,但我在理解这个功能时遇到了一些问题.我想完全停用solr得分(tf,idf,coord和fieldNorm).

我不知道从哪里开始.我知道的事情

  1. 我必须编写自己的DefaultSimilarity实现.
  2. 覆盖(tf,idf,coord和fieldNorm) - 方法.
  3. 在schem.xml中加载类

在哪里存放课程?网络上有任何工作示例吗?我找不到一个!

谢谢

Sti*_*985 12

我自己想出来了.我在solr中的/ dist /文件夹下存储了我自己的DefaultSimilarity实现.然后我添加<lib dir="../../../dist/org/apache/lucene/search/similarities/" regex=".*\.jar"/>到我的solrconfig.xml,一切正常.

package org.apache.lucene.search.similarities;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.search.similarities.DefaultSimilarity;

public class MyNewSimilarityClass extends DefaultSimilarity {

@Override
public float coord(int overlap, int maxOverlap) {
    return 1.0f;
}

@Override
public float idf(long docFreq, long numDocs) {
    return 1.0f;
}

@Override
public float lengthNorm(FieldInvertState arg0) {
    return 1.0f;
}

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

}
Run Code Online (Sandbox Code Playgroud)

要点:https://gist.github.com/FabianKoestring/7846845

  • DefaultSimilarity 似乎已在最新版本的 solr 中删除,是否有相同的更新要点? (2认同)