solr 在 contrib 目录中找不到 ICUFoldingFilter

标签 solr

我正在尝试设置多核 solr 安装,但似乎无法为 solr 加载所需的类提供正确的配置。

运行 java -jar start.jar 的输出包括:

Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lib/icu4j-4.8.1.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-icu-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-smartcn-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-stempel-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
WARNING: <indexDefaults> and <mainIndex> configuration sections are deprecated (but still work). Please use <indexConfig> instead.
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
INFO: Using Lucene MatchVersion: LUCENE_36
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
INFO: Loaded SolrConfig: solrconfig.xml
Sep 11, 2012 4:23:16 PM org.apache.solr.schema.IndexSchema readSchema
INFO: Reading Solr Schema
... snip ...
Sep 11, 2012 4:23:16 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/icu/ICUFoldingFilter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:388)
    at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:409)
    at org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83)

org/apache/lucene/analysis/icu/ICUFoldingFactory 存在于 lucene-icu-3.6.1.jar 中,为什么后来找不到了?

我的目录结构是:

|-solr
|---contrib
|-----analysis-extras
|-------lib
|-------lucene-libs
|-----velocity
|-------lib
|---cores
|-----core0
|-------conf
|-------data
|---------index
|-----core1
|-------conf
|-------data
|-----core2
|-------conf
|-------data
|---------index
|---lib
|-----solrj-lib
|-------optional

最佳答案

我发现我需要将以下 jar 放在每个实例目录的 lib 中:

apache-solr-analysis-extras-3.6.2.jar
lucene-icu-3.6.2.jar
lucene-stempel-3.6.2.jar
icu4j-4.8.1.1.jar
lucene-smartcn-3.6.2.jar
规范器.jar UnicodeNormalizeFilter.jar

我的主要问题是我没有意识到我需要 apache-solr-analysis-extras-x.y.x.jar。该文件位于 apache-solr-3.6.2/dist 中。接下来的 4 个来自 apache-solr-3.6.2/contrib/analysis-extras。 (我有点认为不需要 normalizer.jar 和 UnicodeNormalizerFilter.jar。)

然后在我需要使用的 schema.xml 中:

  <filter class="solr.ICUFoldingFilterFactory"/>

...不是 org.apache.lucene.etc 包名。我尝试了 org.apache.lucene.analysis 包名,但没有用。我觉得有点奇怪,但它在文档中看起来是这样的。 http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ICUTokenizerFactory

关于solr 在 contrib 目录中找不到 ICUFoldingFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377878/

相关文章:

java - Solr 错误返回类型错误

solr - 如何告诉 Solr 返回每个文档的命中搜索词?

java - 您可以从 Solr 索引中的文档中删除一个字段吗?

mysql - 为什么 Solr 5.3.x 中的导入过程非常慢?

java - Solr 和 Solrj 中的 IN 等效查询

solr - 查询solr中的多值字段

java - 在 Java 中从 Solr 服务器中选择数据

Solr SynonymGraphFilterFactory 导入时出错

mysql - SOLR mysql - 抱歉,没有定义数据导入处理程序

java - 将多值、逗号分隔的字符串添加到 Solr 不起作用