4

我正在尝试在 Solr 模式中使用 ICUTokenizerFactory。这就是我定义field和的方式fieldType

<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"/>

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

Plugin init failure for [schema.xml] fieldType "text_icu": Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.ICUTokenizerFactory'

我已经搜索过了,但没有成功。我不知道我是否遗漏了什么或者架构中有问题。如果有人尝试过 ICUTokenizerFactory 那么请提出可能是什么问题。

4

2 回答 2

11

在 solrconfig.xml 的顶部添加:

<config>
  <lib dir="${user.dir}/../contrib/analysis-extras/lucene-libs/" />
  <lib dir="${user.dir}/../contrib/analysis-extras/lib/" />

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

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

于 2013-01-30T13:38:10.247 回答
8

来自维基:

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

于 2013-01-30T12:04:46.397 回答