Solr自定义过滤器NoSuchMethod异常

时间:2014-05-25 07:34:08

标签: solr

我读过很多相同的问题,但仍然无法得到答案。

我得到了

java.lang.NoSuchMethodException: SolrCustomFilters.SolrCustomAlarmFilterFactory.<init>(java.util.Map)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:582)
加载Solr时

我的过滤器工厂:

package SolrCustomFilters;

import java.util.Map;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.util.TokenFilterFactory;

public class SolrCustomAlarmFilterFactory extends TokenFilterFactory  {

    public void init(java.util.Map<String, String> args) {
    }

    protected SolrCustomAlarmFilterFactory(java.util.Map<String, String> args) {
    super(args);
    }

    @Override
    public SolrCustomAlarmFilter create(TokenStream ts) {
    return new SolrCustomAlarmFilter(ts);
    }
}

架构配置:

<analyzer type="index">
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="SolrCustomFilters.SolrCustomAlarmFilterFactory" />
    <tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>

有什么建议吗?

P.S。过滤器中使用的罐子与Solr中的罐子相同(只需复制)。


思考困难...... 使构造函数公开并且有效。

1 个答案:

答案 0 :(得分:0)

SolrCustomAlarmFilterFactory.<init>是构造函数,而不是init方法。构造函数应为public