【发布时间】:2017-09-18 14:05:49
【问题描述】:
我下载了 Solr 版本 4.7.0,然后像这样为日语文件类型添加过滤器(使用包中的示例目录):
<fieldType name="text_ja_start_with" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" />
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<filter class="solr.JapaneseReadingFormFilterFactory" useRomaji="false"/>
<filter class="solr.ICUTransformFilterFactory" id="Katakana-Hiragana"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" />
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<filter class="solr.JapaneseReadingFormFilterFactory" useRomaji="false"/>
<filter class="solr.ICUTransformFilterFactory" id="Katakana-Hiragana"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
由于此错误,服务器无法启动:
原因:java.lang.ClassNotFoundException: org.apache.lucene.analysis.util.MultiTermAwareComponent
我进行了一些搜索,但据说 MultiTermAwareComponent 是 Solr 的抽象组件 (http://lucene.apache.org/core/4_0_0/analyzers-common/org/apache/lucene/analysis/util/MultiTermAwareComponent.html)。 所以我不知道如何解决这个问题。
更新:
当我复制 2 个库文件 ($root/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-4.7.0.jar 和 $root/contrib/analysis-extras/lib/icu4j-52.1.jar) 用于 ICUTransformFilterFactory 过滤器到 $root/example/lib/ext,它会抛出错误以上。当不添加2个文件到libs目录时,错误不会发生但不能使用ICUTransformFilterFactory过滤器
【问题讨论】: