Solr 自定义相似度 [英] Solr Custom Similarity

查看:42
本文介绍了Solr 自定义相似度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

i want to set my own custom similarity in my solr schema.xml but i have a few problems with understanding this feature. I want to completely deactivate solr scoring (tf,idf,coord and fieldNorm).

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

I dont know where to start. Things i know

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

在哪里存储类?网络上是否有任何工作示例?我找不到!

Where to store the class ? Are there any working examples in the web ? I cant find one!

谢谢

推荐答案

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

I figured it out on my own. I have stored my own implementation of DefaultSimilarity under /dist/ folder in solr. Then i add <lib dir="../../../dist/org/apache/lucene/search/similarities/" regex=".*.jar"/> to my solrconfig.xml and everything works fine.

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;
}

}

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

这篇关于Solr 自定义相似度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆