java - 自定义相似度类 solr 不起作用

标签 java solr lucene

我创建了这样的自定义相似性类:

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

}

将其导出到 jar 文件并将其上传到我的 solr 内的/dist 文件夹。 在我的 solrconfig 中,我添加了以下行:

<lib dir="../../../dist/" regex="similarityJar.*\.jar" />

在我的 schema.xml 中,我添加了以下行:

<similarity class="org.apache.lucene.search.similarities.MyNewSimilarityClass"> </similarity>

当启动我的 solr 实例时,我可以看到 jar 已添加到类加载器中:

3170 [coreLoadExecutor-5-thread-1] INFO  org.apache.solr.core.SolrResourceLoader  – Adding 'file:/var/www/apache-solr/dist/similarityJarNew.jar' to classloader

服务器启动但卡在:

3988 [coreLoadExecutor-5-thread-1] INFO  org.apache.solr.schema.IndexSchema  – Reading Solr     Schema from /var/www/apache-solr/productie/solr/collection1/conf/sc                                hema.xml
4025 [coreLoadExecutor-5-thread-1] INFO  org.apache.solr.schema.IndexSchema  – [collection1] Schema name=example
4174 [main] INFO  org.apache.solr.servlet.SolrDispatchFilter  – user.dir=/var/www/apache-solr/productie
4174 [main] INFO  org.apache.solr.servlet.SolrDispatchFilter  – SolrDispatchFilter.init() done
4217 [main] INFO  org.eclipse.jetty.server.AbstractConnector  – Started SocketConnector@0.0.0.0:8983

此后核心将不会加载。

当我注释掉 schema.xml 中引用相似性类的行并在后台启动服务器时,一切都会正常并且核心已加载。现在,当我取消 schema.xml 中的行注释并在管理面板中重新加载核心时,一切仍然有效,但新的相似性类似乎不起作用。

分数和结果顺序仍然和以前一样... 任何帮助将不胜感激!!

我在 CentOS 服务器上使用 solr 4.10.2。

最佳答案

原来问题出在我本地机器上的 java 版本!

我正在使用 Java 1.8 构建该类,服务器版本是 1.7。取消注释指向相似性类的行后重新加载 schema.xml 会在日志中弹出一个指出问题的错误。

关于java - 自定义相似度类 solr 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27842292/

相关文章:

java - 将 Hashtable 数组转换为对象数组

solr - Sitecore Solr - IndexSchema 架构中未指定 uniqueKey

solr - 如何在不知道停止键的情况下停止 jetty

lucene - OrientDB:全文索引与 Lucene 全文索引

python - Pylucene 4.9.0 Ubuntu 14.04 安装 ImportError

java - 在 Windows 中的 cmd 中运行 jar 文件会出现错误

java - Spring Boot Jackson 日期格式

java - 如何通过代理重定向 javax.ws.rs.client.WebTarget Post 请求

java - 如何让 Solr 8.11 在启用 FIPS 的环境中运行

java - Lucene 查询 @indexedEmbedded 对象 id