Solr未加载自定义过滤器

时间:2011-09-24 03:56:58

标签: solr

我编写了一个自定义的KeepWord过滤器工厂,并将生成的jar放在solr / lib目录下。 但是当启动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。但显然它没有发生。我究竟做错了什么?请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:4)

一些事情 -
1. org.custom.solr.analysis.MyKeepWordFilterFactory与jar文件org / custom / analysis / MyKeepWordFilterFactory.class的内容不匹配。 solr包丢失了 2.如果仍然没有找到它。检查solrconfig.xml中的条目是否已取消注释,并且在服务器启动时加载了jar文件。