1

查找有关相关问题的信息,以设置存储在 mysql 数据库中的所有文档的导入。 你可以在这里找到原始问题

感谢提供的步骤,我能够使用 mysql DB 使其为我工作。我的配置看起来与上面链接中提到的配置相同。

<dataConfig>
  <dataSource name="db"
    jndiName="java:jboss/datasources/somename"
    type="JdbcDataSource" 
    convertType="false" />
  <dataSource name="dastream" type="FieldStreamDataSource" />
  <dataSource name="dareader" type="FieldReaderDataSource" />
  <document name="docs">
    <entity name="doc" query="select * from document" dataSource="db">
      <field name="id" column="id" />
      <field name="name" column="descShort" />
      <entity name="comment" 
        transformer="HTMLStripTransformer" dataSource="db"
        query="select id, body, subject from comment where iddoc='${doc.id}'">
        <field name="idComm" column="id" />
        <field name="detail" column="body" stripHTML="true" />
        <field name="subject" column="subject" />
      </entity>
      <entity name="attachments" 
        query="select id, attName, attContent, attContentType from Attachment where iddoc='${doc.id}'"
        dataSource="db">
        <field name="attachment_name" column="attName" />
        <field name="idAttachment" column="id" />
        <field name="attContentType" column="attContentType" />
        <entity name="attachment" 
          dataSource="dastream"
          processor="TikaEntityProcessor"
          url="attContent"
          dataField="attachments.attContent"
          format="text"
          onError="continue">
          <field column="text" name="attachment_detail" />
        </entity>
      </entity>
    </entity>
  </document>
</dataConfig>

我在 DB 中有各种附件,例如 jpeg、pdf、excel、doc 和纯文本。现在一切都适用于大多数二进制数据(jpeg、pdf doc 等)。但是某些文件的导入失败。似乎数据源设置为在遇到 String 而不是 InputStream 时引发异常。我在实体“附件”上设置了 onError="continue" 标志,以确保尽管出现此错误,DataImport 仍然通过。注意到这个问题已经发生在许多文件中。下面给出了例外情况。想法??

Exception in entity : attachment:java.lang.RuntimeException: unsupported type : class java.lang.String 
at org.apache.solr.handler.dataimport.FieldStreamDataSource.getData(FieldStreamDataSource.java:89) 
at org.apache.solr.handler.dataimport.FieldStreamDataSource.getData(FieldStreamDataSource.java:48) 
at org.apache.solr.handler.dataimport.TikaEntityProcessor.nextRow(TikaEntityProcessor.java:103) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243) 
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:465) 
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:491) 
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:491) 
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:404) 
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:319) 
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:227) 
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:422) 
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:487) 
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:468)
4

1 回答 1

1

我知道这是一个过时的问题,但是:在我看来,当 BLOB(我与 Oracle 合作)为空时会引发此异常。当我添加诸如“blob_column 不为空”之类的 where 子句时,问题对我来说就消失了(Solr 4.10.1)

于 2014-10-23T11:03:43.297 回答