【发布时间】:2016-01-20 10:25:34
【问题描述】:
我想将基于 solr 的应用程序从 Solr 4 更新到 Solr 5.3.1
我刚刚发现,从 Solr 5.2 开始,不再可以将 Solr 作为 WebApp 运行。 因此,不是将项目(将 solr 作为 Maven 依赖项)打包为 WAR 并使用单独的 Jetty 运行它,现在我需要将我的源代码放入 Solr。 但是我该怎么做呢?
我尝试将我的项目打包为 JAR 并将其放在文件夹 /solr-5.3.1/contrib/mySearchApplication/lib/mysearch.jar 中,并在 solrconfig.xml <lib dir="${solr.install.dir:../../../..}/contrib/mySearchApplication/lib" regex=".*\.jar" /> 中添加了此路径,但是当我尝试运行 Solr 时,它仍然找不到我的类,例如我的自定义令牌过滤器。
那么如何将我的 java 类添加到 solr?
我收到此错误消息:
ERROR (coreLoadExecutor-6-thread-1) [ ] o.a.s.c.CoreContainer Error creating core [myCollection]: Could not load conf for core myCollection: Plugin init failure for [schema.xml] fieldType "text_en": Plugin init failure for [schema.xml] analyzer/filter: Error loading class 'com.mySearchApplication.lucene.analysis.pattern.SplitOnPatternFilterFactory'. Schema file is /var/tmp/solr/myCollection/conf/schema.xml
org.apache.solr.common.SolrException: Could not load conf for core myCollection: Plugin init failure for [schema.xml] fieldType "text_en": Plugin init failure for [schema.xml] analyzer/filter: Error loading class 'com.mySearchApplication.lucene.analysis.pattern.SplitOnPatternFilterFactory'. Schema file is /var/tmp/solr/myCollection/conf/schema.xml
at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:80)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:721)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:443)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:434)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text_en": Plugin init failure for [schema.xml] analyzer/filter: Error loading class 'com.mySearchApplication.lucene.analysis.pattern.SplitOnPatternFilterFactory'. Schema file is /var/tmp/solr/myCollection/conf/schema.xml
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:596)
at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:175)
at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)
at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:104)
at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:75)
... 8 more
【问题讨论】:
-
可能你的路径是错误的。将您的 lib 文件夹复制到与
solrconfig.xml相同的父文件夹中并使用dir="lib": cwiki.apache.org/confluence/display/solr/… -
感谢您的回答。我试过了,但我仍然得到:
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core myCollection: Plugin init failure for [schema.xml] fieldType "text_en": Plugin init failure for [schema.xml] analyzer/filter: Error loading class 'com.mySearchApplication.lucene.analysis.pattern.SplitOnPatternFilterFactory'. Schema file is /var/tmp/solr/myCollection/conf/schema.xml -
请将现有过滤器复制并重命名为您的 jar 文件并尝试从 solr 访问它。可能您的“SplitOnPatternFilterFactory”-Class 的静态构造函数有问题? stackoverflow.com/questions/6352215/…