Solr 配置DataImport出错的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr 配置DataImport出错的问题相关的知识,希望对你有一定的参考价值。
HTTP Status 500 - msg=SolrCore 'collection1' is not available due to init failure: severeErrors,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: severeErrors at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:827) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:317) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:217) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: severeErrors at org.apache.solr.core.SolrCore.<init>(SolrCore.java:844) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:630) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:562) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:597) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:258) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:250) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) ... 3 more Caused by: java.lang.NoSuchFieldError: severeErrors at org.apache.solr.handler.dataimport.DataImportHandler.inform(DataImportHandler.java:121) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:631) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:835) ... 11 more ,code=500
到底是什么原因啊 求教
solrconfig.xml 如下
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">dataconfig.xml</str>
</lst>
</requestHandler>
可能是jar文件的路径放错了,jar文件不应该放在tomcat下的solr的lib里 而在SolrHome里新建lib文件夹把dataimport相关的Jar放进去即可解决。
配置步骤
1、所需jar包: 可在solr-4.7.0\\dist目录下copy
1) solr-dataimporthandler-extras-4.7.0.jar;
2) solr-dataimporthandler-4.7.0.jar;
3) ojdbc-6.jar;自己下载
将jar包放在tomcat下的\\webapps\\solr\\WEB-INF\\lib中
2、修改solr的核心配置 :
F:\\cjj\\solr\\solr-4.7.0\\solrhome\\collection1\\conf
之前创建的solrhome下的配置文件中:需要更改3个地方:
2.1)首先是solrconfig.xml文件,添加如下这段配置:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler> 123456
指向一个自定义文件:data-config.xml,顾名思义,是配置相关数据源的。
2.2)然后是新建data-config.xml文件,添加如下这段配置:
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.17.184:1521:gisdev" user="gisdev" password="gisdev"/> <document name="salesDoc">
<entity name="t_map_point" query="select * from t_map_point where type ='SALES_DEPT' and isvalid ='1' " >
<field name="id" column="id" />
<field name="name" column="name" />
<field name="address" column="address" />
<field name="lng_baidu" column="lng_baidu" />
<field name="lat_baidu" column="lat_baidu" />
</entity>
</document></dataConfig>1234567891011121314
2.3)最后的一个文件配置是修改schema.xml文件,添加在data-config中定义的字段,如果已经存在如id,name,则可不用重新添加。
3、最后一步,全量或者增量导入数据:
启动tomcat,选择collection1,选择dataimport命令界面:
我们可以选择是全量导入还是增量导入,并且选择配置好的实体。
实体是我们在data-config.xml中配置的实体,已根据SQL过滤。
点击execute后
等待一会,刷新一下,可以看到已经执行完毕了。
这个时候,再返回去看collection1中有什么变化:
可以看到总数有9068条数据组合成的docs,对应数据库中过滤出的9068的总数,每个实体也按照我们定义好的字段显示出来,是放在docs的索引节点存在的。
在dataimport的时候指向的core1名字不正确追问
哥们明天能远程帮我配下吗?
追答你把这几个问价给我发过来看看好了,solr.xml, solrconfig.xml, dataimport.xml, schema.xml
追问您邮箱多少啊 我发给你吧
12.solr学习速成之dataimport
1.将jar包拷贝到tomcat/webapps/solr/web-inf/lib下面
mysql-connector-java-5.1.6.jar
solr-dataimporthandler-5.3.1.jar
solr-dataimporthandler-extras-5.3.1.jar
solr-dataimportscheduler-1.1.jar
2.tomcat/webapps/solr/web-inf/web.xml添加监听
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
3.solr_home下建立conf目录,conf目录下建立dataimport.properties文件
syncEnabled=1 syncCores=test server=192.168.126.205 port=8080 webapp=solr #增量 params=/dataimport?command=delta-import&clean=false&commit=true #schedule interval default 30min interval=1 #重做索引的时间间隔,单位分钟,默认7200就是1天 #为空为0或者注释掉,表示永不重做索引 reBuildIndexInterval=2 #重做索引的参数 reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true #重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000 #两种格式:2012-04-11 03:10:00或者 03:10:00,后一种会自动补全日期部分为服务启动的日期 reBuildIndexBeginTime=
4.solr_home下对应core下的conf目录下建立data-config.xml文件
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.105:3306/test" user="root" password="root"/> <document> <entity name="id" query="select id,arm,name from user"> </entity> </document> </dataConfig>
5.solr_home下对应core下的conf下修改schema.xml
<field name="arm" type="string" indexed="true" stored="true" />
因为name已经存在了,所以就不添加了
6.solr_home下对应core下的conf下修改solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
此后数据库有更新,就会导入到solr中
以上是关于Solr 配置DataImport出错的问题的主要内容,如果未能解决你的问题,请参考以下文章
solr配置DataImport连接MySQL8数据库注意:
solr配置DataImport连接MySQL8数据库注意: