2015-01-08 80 views
1

我創建定製相似性類別是這樣的:自相似性類別的Solr不工作

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的情況下,我可以看到,罐子被添加到類裝載器:

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 [email protected]:8983 

核心在此之後不會加載。

當我註釋掉我schema.xml中是指相似性類別的線,然後在後臺的一切服務器會罰款和核心加載。現在,當我取消註釋schema.xml中的行並重新加載管理面板中的核心時,一切仍然有效,但新的相似類似乎不起作用。

的分數和結果令仍然和以前一樣...... 任何幫助,將不勝感激!

我使用CentOS的服務器上Solr的4.10.2。

+0

對不起,請你告訴我創造這個包的正確途徑。我對此很陌生。這裏是畝問題:https://stackoverflow.com/questions/45144617/implementing-custom-solr-similarity – AOY

回答

0

原來,問題是我的本地計算機上我的Java版本!

我是建設類與Java 1.8的服務器版本爲1.7。在取消註釋指向相似性類的行之後重新加載schema.xml會在日誌中彈出一個指出問題的錯誤。