我是solr的新手。我已经在我的服务器上安装了apache tomcat 7.0,并且我在服务器上安装了solr 3.6.1。
我的D:\驱动器上有网络人员设置的solr-home文件夹。其中的文件夹是: 箱等,日志,多核,web应用。
在multicore文件夹中有:core0,core1,exampledocs,README.txt和solr.xml。在webapps文件夹中,我没有别的solr.war文件。
现在我在名为ConfigUserTextUpdate的多核文件夹中再保留一个核心文件夹,其中包含conf文件夹并重新启动tomcat服务,我可以在localhost / solr上看到新核心。
现在我将db-config.xml添加到ConfigUserTextUpdate核心。以下是内容:
<dataConfig>
<dataSource
type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://<dbname>\<servername>;databaseName=dbname" user="username"
password="password"/>
<document>
<entity name="ConfigUserTextUpdate" query="UserTextUpdate_Index">
</entity>
</document>
</dataConfig>
到这里一切都很好,所有三个核心都显示在localhost / solr上。 现在在核心ConfigUserTextUpdate的solrconfig.xml中添加行
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
它开始给出错误,如下所示:
HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you
希望solr在配置错误后继续,更改: 虚假的 solr.xml ----------------------------------------------- -------------- org.apache.solr.common.SolrException:加载类时出错 'org.apache.solr.handler.dataimport.DataImportHandler'at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:394) 在org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:455) 在 org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:159) 在org.apache.solr.core.SolrCore。(SolrCore.java:563)at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480)at at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)at at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)at at org.apache.solr.core.CoreContainer $ Initializer.initialize(CoreContainer.java:161) 在 org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) 在 org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) 在 org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) 在 org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:103) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 在 org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) 在 org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1655) at java.util.concurrent.Executors $ RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)at java.util.concurrent.FutureTask.run(未知来源)at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(未知来源) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source) 在java.lang.Thread.run(未知来源)引起: 抛出java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler at java.net.URLClassLoader $ 1.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at java.net.FactoryURLClassLoader.loadClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(未知来源)at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) ......还有27个
我尝试过很多东西,比如将dataimporthandler.jar文件放在核心文件夹中,以及在各个站点上给出的其他很多东西,但仍然会出现同样的错误。请帮帮我。
如果您需要更多信息,请与我们联系。
提前致谢。
答案 0 :(得分:25)
你必须编辑solrconfig.xml并添加库的路径,例如:
<lib dir="../../../../dist/" regex="apache-solr-dataimporthandler-.*\.jar" />
..如果你仍然在该目录中。在示例solrconfigs中,我发现它们正好位于
之下<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
答案 1 :(得分:4)
在solr-4.3.0中尝试实现:http://wiki.apache.org/solr/DIHQuickStart添加:
<lib dir="../../../contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
文件中的: PROJECT-HOME \ solr \ collection1 \ conf \ solrconfig.xml
在现有的行下:
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
解决了这个问题。 也许你需要重启servlet容器(在默认情况下:Jetty)。
答案 2 :(得分:1)
solr-5.2.0 版本的问题。当我切换到 solr-5.5.0 时,问题已经解决。
答案 3 :(得分:0)
有类似的问题,我的问题是使用符号链接(solr没有关注它们)。