use*_*813 11 solr dataimporthandler
我是solr的新手.我已经在我的服务器上安装了apache tomcat 7.0,并且我在服务器上安装了solr 3.6.1.
我的D:\驱动器上有网络人员设置的solr-home文件夹.其中的文件夹是:bin等,日志,多核,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>
Run Code Online (Sandbox Code Playgroud)
到这里一切都很好,所有三个核心都显示在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>
Run Code Online (Sandbox Code Playgroud)
它开始给出错误,如下所示:
Run Code Online (Sandbox Code Playgroud)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时出错.位于org.apache.solrCore.SolrCore的org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)的org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:394)中的DataImportHandler .gateRequestHandler(SolrCore.java:455)org.apache中的org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:159)atg.apache.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.core.CoreContainer $ Initializer.initialize(CoreContainer.java:161)在org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)在org.apache.cata lina.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)在java.util.conc的org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1655)java.util.concurrent.ThreadPoolExecutor $ java.util.concurrent.FutureTask $ Sync.innerRun(未知来源)java.util.concurrent.FutureTask.run(未知来源)的urrent.Executors $ RunnableAdapter.call(未知来源) Worker.runTask(来源不明)在致java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(来源不明)在java.lang.Thread.run(来源不明):抛出java.lang.ClassNotFoundException:org.apache.solr. java.net.URLClassLoader上的handler.dataimport.DataImportHandler $ 1.run(未知来源)java.lang.ClassLoader.loadClass上java.net.URLClassLoader.findClass(未知来源)的java.security.AccessController.doPrivileged(Native Method) java.net.FactoryURLClassLoader.loadClass(Unknown Source)的java.lang.ClassLoader.loadClass(未知来源)java.lang.Class.forName0(本机方法)java.lang.Class.forName(未知来源)来源)org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378)... 27更多
我尝试过很多东西,比如将dataimporthandler.jar文件放在核心文件夹中,以及在各个站点上给出的其他很多东西,但仍然会出现同样的错误.请帮帮我.
如果您需要更多信息,请与我们联系.
提前致谢.
Hyq*_*que 26
你必须编辑solrconfig.xml并添加库的路径,例如:
<lib dir="../../../../dist/" regex="apache-solr-dataimporthandler-.*\.jar" />
Run Code Online (Sandbox Code Playgroud)
..如果你仍然在该目录中.在示例solrconfigs中,我发现它们正好位于下方
<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
Run Code Online (Sandbox Code Playgroud)
在solr-4.3.0中,尝试实现时:http : //wiki.apache.org/solr/DIHQuickStart添加:
<lib dir="../../../contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
Run Code Online (Sandbox Code Playgroud)
在文件中:PROJECT-HOME \ solr \ collection1 \ conf \ solrconfig.xml
在现有行下:
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
Run Code Online (Sandbox Code Playgroud)
解决了问题。也许您需要重新启动Servlet容器(默认情况下:Jetty)。