12

我是 solr 的新手。我已经在我的服务器上安装了 apache tomcat 7.0,我在服务器上安装了 solr 3.6.1。

我的 D:\ 驱动器上有网络人员设置的 solr-home 文件夹。其中的文件夹是:bin,etc,logs,multicore,webapps。

在 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中的false ------------------------------------ -------------------------- org.apache.solr.common.SolrException:加载类'org.apache.solr.handler.dataimport时出错。 DataImportHandler' 在 org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:394) 在 org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419) 在 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) 在 org.apache .solr.core.CoreContainer.create(CoreContainer.java:480) 在 org.apache.solr.core.CoreContainer.load(CoreContainer.java:332) 在 org.apache.solr.core.CoreContainer.load(CoreContainer.java :216) 在 org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) 在 org.apache.catalina.core 的 org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) .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) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org .apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655) at java.util.concurrent.Executors$RunnableAdapter.call (未知来源)在 java.util.concurrent.FutureTask$Sync.innerRun(未知来源)在 java.util.concurrent.FutureTask.run(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 引起:java.lang.ClassNotFoundException:org.apache.solr.handler.dataimport。DataImportHandler at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)在 java.net.FactoryURLClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org .apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) ... 27 更多loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) .. . 27 更多loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) .. . 27 更多

我已经尝试了很多事情,比如将 dataimporthandler.jar 文件放在核心文件夹中,以及在各个站点上给出的其他许多事情,但仍然得到相同的错误。请帮我解决这些问题。

如果您需要更多信息,请告诉我。

提前致谢。

4

4 回答 4

28

您必须编辑 solrconfig.xml 并将路径添加到库中,例如:

<lib dir="../../../../dist/" regex="apache-solr-dataimporthandler-.*\.jar" />

..如果您仍然在该目录中拥有它。在示例 solrconfigs 我发现他们把它放在下面

<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
于 2013-01-15T10:49:02.847 回答
8

在 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)。

于 2013-11-09T14:02:49.193 回答
1

solr-5.2.0版本的问题。当我切换到solr-5.5.0时,问题已解决。

于 2016-05-12T12:46:03.620 回答
0

有类似的问题,我的问题是符号链接(solr 没有关注它们)。

于 2014-02-19T19:02:24.057 回答