在Solr中不能使用ICUTokenizerFactory

Sal*_*man 3 lucene schema solr tokenize analyzer

我试图在Solr架构中使用ICUTokenizerFactory.这是我定义fieldfieldType.

<fieldType name="text_icu" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.ICUTokenizerFactory"/>
    </analyzer>
</fieldType>

<field name="fld_icu" type="text_icu" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)

而且,当我启动Solr时,我得到了这个错误

Plugin init failure for [schema.xml] fieldType "text_icu": Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.ICUTokenizerFactory'
Run Code Online (Sandbox Code Playgroud)

我搜索过但没有成功.我不知道我是否遗漏了某些东西或者架构中存在一些问题.如果有人尝试过ICUTokenizerFactory,那么请建议可能出现的问题.

Ale*_*tch 9

在solrconfig.xml的顶部添加:

<config>
  <lib dir="${user.dir}/../contrib/analysis-extras/lucene-libs/" />
  <lib dir="${user.dir}/../contrib/analysis-extras/lib/" />
Run Code Online (Sandbox Code Playgroud)

这假定您从示例目录运行,并将solr.solr.home设置为您的实例.否则,只需使用Solr安装的绝对路径.

您也可以将所有这些罐子复制到lib目录中(在您的核心下,而不是solr home).但以上是一种更简单的方法.


Okk*_*ein 7

来自Wiki:

Lucene支持使用analysis-extras contrib模块中的solr.ICUTokenizerFactory将这些语言分割为音节.要使用此标记生成器,请参阅solr/contrib/analysis-extras/README.txt以获取有关需要将哪些jar添加到SOLR_HOME/lib的说明

  • 你需要在dist和SOLR_HOME/lib中的contrib/analysis-extras/lib中的所有jar中加入solr-analysis-extras.*.jar.如果你使用Tomcat把它放在WEB-INF/lib中. (7认同)