Solr 8.1添加爱沙尼亚语时加载EstonianStemmer类失败
Solr爱沙尼亚语支持加载失败问题解决
错误信息
analytics: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core analytics: Error loading class 'org.tartarus.snowball.ext.EstonianStemmer'
用户已配置内容
<fieldType name="text_et" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_et.txt" /> <filter class="solr.SnowballPorterFilterFactory" language="Estonian"/> </analyzer> </fieldType>
解决方法
- 检查Solr版本兼容性:旧版Solr的Snowball组件可能未包含爱沙尼亚语词干提取器,确认你的Solr版本是否支持该语种。若版本过旧,升级到Solr 7及以上版本(这类版本通常支持更多语种的Snowball词干提取)。
- 确认Snowball jar包存在:查看Solr的lib目录(全局lib或core专属lib),确保包含
lucene-snowball-*.jar或solr-snowball-*.jar,且该jar包内存在org.tartarus.snowball.ext.EstonianStemmer类。若缺失,补充对应jar包到Solr的lib路径。 - 切换到ICU词干提取方案:如果Snowball方案无法解决,改用ICU组件实现爱沙尼亚语词干处理,配置示例如下:
注意需确保ICU相关jar包存在,并准备好爱沙尼亚语的ICU词干字典文件。<fieldType name="text_et" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_et.txt"/> <filter class="solr.ICUFoldingFilterFactory"/> <filter class="solr.ICUStemFilterFactory" dictionary="lang/et.dict"/> </analyzer> </fieldType> - 验证类路径配置:检查Solr core的
solrconfig.xml中是否正确配置了lib目录,确保所需jar包能被正常加载。
内容的提问来源于stack exchange,提问作者Nitish Raj
相关产品推荐
相关产品推荐

