繁体   English   中英

无法使用dataimporthandler将数据从mysql数据库导入/索引到solr

[英]Can not import/index data from mysql database to solr using dataimporthandler

I am trying to import database table from my mysql database to solr Index 
through Dataimporthandler.
I have configured all needed files as below:

Data-config.xml
`<dataConfig>
<dataSource type="JdbcDataSource" 
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:81/indcat" 
user="root" 
password=""/>
<document>
<entity name="enewtheses"  
pk="inf_control_no"
query="select * from enewtheses">
<field column="inf_control_no" name="inf_control_no"/>
<field column="location" name="location"/>
<field column="date_of_entry" name="date_of_entry"/>
<field column="language" name="language"/>
<field column="physical_medium" name="physical_medium"/>
<field column="type_of_material" name="type_of_material"/>
<field column="document_number" name="document_number"/>
<field column="title" name="title"/>
<field column="parallel_title" name="parallel_title"/>
<field column="other_title" name="other_title"/>
<field column="name_of_researcher" name="name_of_researcher"/>  
<field column="name_of_guide" name="name_of_guide"/>
<field column="name_of_corporate_body" name="name_of_corporate_body"/>  
<field column="place_and_publisher" name="place_and_publisher"/>
<field column="date_of_publication" name="date_of_publication"/>
<field column="date_related_to_thesis_diss" 
name="date_related_to_thesis_diss"/>    
<field column="physical_description" name="physical_description"/> 
<field column="note" name="note"/> 
<field column="abstract" name="abstract"/> 
<field column="class_scheme_notation" name="class_scheme_notation"/> 
<field column="subject_descriptor" name="subject_descriptor"/> 
<field column="reserved_for_thesis_diss" name="reserved_for_thesis_diss"/> 
<field column="accession_number" name="accession_number"/> 
<field column="uri" name="uri"/> 
<field column="flag" name="flag"/> 
<field column="bibliographical_note" name="bibliographical_note"/> 
<field column="last_updated_date" name="last_updated_date"/> 
<field column="last_updated_by" name="last_updated_by"/> 
<field column="prepared_by" name="prepared_by"/>
<field column="bulk" name="bulk"/>  
</entity>
</document>
</dataConfig>`

当我运行完全导入时,在记录日志时出错:处理时发生异常:enewtheses文档:SolrInputDocument(fields:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:从enewtheses处理文档中选择* #1
数据配置文件很好,我已经检查了1000次,但在这里找不到真正的问题是什么,完整的堆栈打印如下:

at org.apache.solr.handler.dataimport.DocBuilder.execute
(DocBuilder.java:270)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport
(DataImporter.java:415)
at org.apache.solr.handler.dataimport.DataImporter.runCmd
(DataImporter.java:474)
at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0
(DataImporter.java:457)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: 
org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to 
execute query: select * from enewtheses Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument
(DocBuilder.java:416)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump
(DocBuilder.java:329)
at org.apache.solr.handler.dataimport.DocBuilder.execute
(DocBuilder.java:232)
... 4 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: 
Unable to execute query: select * from enewtheses Processing Document # 1
atorg.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow 
(DataImportHandlerException.java:69)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.
<init>(JdbcDataSource.java:327)
at org.apache.solr.handler.dataimport.JdbcDataSource.createResultSetIterator
(JdbcDataSource.java:288)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData
(JdbcDataSource.java:283)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData
(JdbcDataSource.java:52)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery
(SqlEntityProcessor.java:59)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow
(SqlEntityProcessor.java:73)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow
(EntityProcessorWrapper.java:267)
atorg.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.jav
a:475)
at 
org.apache.solr.handler.dataimport.DocBuilder.buildDocument
(DocBuilder.java:41)
... 6 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 
Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The 
driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:632)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1016)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2198)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2229)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
atcom.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
atorg.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.ja
va:192)
atorg.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.ja
va:172)
atorg.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcDataSo
urce.java:528)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.
<init>(JdbcDataSource.java:317)
... 14 more
Caused by: java.io.EOFException: Can not read response from server. Expected 
to 
read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3011)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:567)
... 31 more

您的DIH没有错。 确保您的数据库连接字符串有效,并且数据库已启动并正在运行。

正如Eric Wang指出的那样,我使用了错误的端口号,此后,我也收到了SSL证书错误,对我有用的最终URL字符串为:url =“ jdbc:mysql://127.0.0.1:3306 / indcat?useSSL =假&”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM