【问题标题】:Indexing failed. Rolled back all changes. (Solr DataImport)索引失败。回滚所有更改。 (Solr 数据导入)
【发布时间】:2012-08-16 14:57:42
【问题描述】:

当我尝试运行 domain.com:8080/solr/dataimport?command=full-import 时,我收到错误 Indexing failed. Rolled back all changes.

没有额外的错误信息告诉我什么时候出错了?有什么建议吗?

data-config.xml

 <dataConfig>

    <dataSource 
        name="mysql"
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost/databasename" 
        user="myusername" 
        password="mypassword" />

    <document>

        <entity 
            name="posts" 
            datasource="mysql"
            query="select id, title, description from posts"
            deltaQuery="select id, title, description from posts where updated_at > '${dataimporter.last_index_time}'">\
        </entity>
        <field column="id" name="id" indexed="true" stored="true" />
        <field column="title" name="title" indexed="true" stored="true" />
        <field column="description" name="description" indexed="true" stored="true" />

    </document>

</dataConfig>

输出

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">0</int>
  </lst>
    <lst name="initArgs">
    <lst name="defaults">
    <str name="config">/usr/local/solr/conf/data-config.xml</str>
  </lst>
</lst>
<str name="command">full-import</str>
<str name="status">idle</str>
<str name="importResponse"/>
<lst name="statusMessages">
  <str name="Time Elapsed">0:0:12.227</str>
  <str name="Total Requests made to DataSource">0</str>
  <str name="Total Rows Fetched">0</str>
  <str name="Total Documents Processed">0</str>
  <str name="Total Documents Skipped">0</str>
  <str name="Full Dump Started">2012-08-16 14:50:07</str>
  <str name="">Indexing failed. Rolled back all changes.</str>
  <str name="Rolledback">2012-08-16 14:50:08</str>
</lst>
<str name="WARNING">
  This response format is experimental. It is likely to change in the future.
</str>
</response>

日志

Aug 16, 2012 3:15:28 PM org.apache.solr.common.SolrException log
  SEVERE: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Could not load driver: com.mysql.jdbc.Driver Processing Document # 1
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:264)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445)
    at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:426)
  Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Could not load driver: com.mysql.jdbc.Driver Processing Document # 1
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621)
    at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:327)
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225)
    ... 3 more

【问题讨论】:

    标签: mysql linux solr lucene dataimporthandler


    【解决方案1】:

    有关问题的所有信息都在日志​​文件中(通常是:catalina.out)

    【讨论】:

    • 这个文件在哪里?
    • @Wasim 这取决于您的设置。它可以在 Solr 文件夹中的日志目录中,也可以在默认的 Tomcat 目录中。在 Solr 4+ 中,您也应该在 Solr 管理页面上的日志“选项卡”中收到此消息
    【解决方案2】:

    在我看来您缺少 solr mysql 驱动程序。

    【讨论】:

      【解决方案3】:

      或者如果你有 solr mysql 连接器,它就找不到它。确保它位于正确的 lib 目录中(solr/yourdb/lib 和/或 example/lib)或将其放在可访问的地方并添加:

      {lib dir="path/to/lib/dir/containing/mysql-connecter/" regex="mysql-connector-java-\d.*\.jar" }
      

      到您的 solrconfig.xml 文件。

      我把它放在上层的solr-4.X/dist/文件夹里放

      {lib dir="../../../../dist/" regex="mysql-connector-java-\d.*\.jar"}
      

      在 solr config.xml 中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 2017-02-16
        • 2012-06-15
        相关资源
        最近更新 更多