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 など) ですべてがうまく機能します。ただし、特定のファイルのインポートは失敗します。データソースは、InputStream ではなく String に遭遇したときに例外をスローするように設定されているようです。エンティティ「attachment」に 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 を使用しています) が null の場合にこの例外がスローされるように見えます。「blob_column is not null」のような where 句を追加すると、問題が解消されます (Solr 4.10.1)

于 2014-10-23T11:03:43.297 に答える