2011-09-24 85 views
2

我寫了一個自定義的KeepWord過濾器工廠,並將生成的jar放在solr/lib目錄下。 但是從Solr的,當我得到這個錯誤Solr不加載自定義過濾器

SEVERE: org.apache.solr.common.SolrException: Error loading class 'org.custom.solr.analysis.MyKeepWordFilterFactory' 
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:389) 
    at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:404) 
    at org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83) 
    at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140) 
    at org.apache.solr.schema.IndexSchema.readAnalyzer(IndexSchema.java:941) 
    at org.apache.solr.schema.IndexSchema.access$100(IndexSchema.java:62) 
    at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:450) 
    at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:435) 
    at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140) 
    at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:480) 
    at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:125) 
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:461) 
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316) 
    ... 
    Caused by: java.lang.ClassNotFoundException: org.custom.solr.analysis.MyKeepWordFilterFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    ... 

這是我的Solr實例目錄的內容。

>$ ls solr/* 
solr/README.txt 

solr/conf: 
admin-extra.html    mapping-ISOLatin1Accent.txt scripts.conf     stopwords.txt    velocity/ elevate.xml     protwords.txt    solrconfig.xml    stopwords_en.txt    xslt/ mapping-FoldToASCII.txt  schema.xml     spellings.txt    synonyms.txt 

solr/data: 
index/  spellchecker/ 

solr/lib: 
my-solr-analyserfilter.jar 

jar文件

>$ unzip -l solr/lib/my-solr-analyserfilter.jar 
Archive: solr/lib/ctown-solr-analyserfilter.jar 
    Length  Date Time Name 
-------- ---- ---- ---- 
     0 09-23-11 23:07 META-INF/ 
     60 09-23-11 23:07 META-INF/MANIFEST.MF 
    3330 09-23-11 23:07 org/custom/analysis/MyKeepWordFilterFactory.class 
--------     ------- 
    3390     3 files 

我使用Solr的版本3.4.0的內容。根據文檔 - https://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins - 將jar文件保存在lib目錄下應該使solr檢測到jar。但顯然這沒有發生。我究竟做錯了什麼?請幫助我解決這個問題。

回答

4

兩件事情 -
1. org.custom.solr.analysis.MyKeepWordFilterFactory不符合您的jar文件組織/自定義/分析/ MyKeepWordFilterFactory.class的內容。 Solr軟件包丟失。
2.如果仍然沒有找到它。檢查solrconfig.xml中的條目是否未註釋,並且在服務器啓動時加載jar文件。

+0

這是錯誤。我後來想到了。 – Jithin