代码之家  ›  专栏  ›  技术社区  ›  Agrawal Ankush

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

  •  0
  • Agrawal Ankush  · 技术社区  · 9 年前
    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(字段: 执行查询:从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
    
    2 回复  |  直到 9 年前
        1
  •  0
  •   Jeeppp    9 年前

        2
  •  0
  •   Agrawal Ankush    9 年前

    正如Eric Wang指出的那样,我使用了错误的端口号,在这之后,我还收到了SSL证书错误,对我有效的最终url字符串是: