使用tika和dataimporthandler从多个文件中提取文本

时间:2015-01-30 07:11:45

标签: solr apache-tika dataimporthandler

我正在使用dataimporthandler从SqlServer和tika导入数据,以便从文件中提取文本。

我想出了如何从文件中提取文本并在有一个文件时将其放在字段中。但是当我从多个文件中提取文本时,我遇到了一个问题。

从数据库我得到的文档包含'title','body'等字段和文件位置列表:'file1.pdf,file2.pdf,file3.pdf'(varchar(max) - 以逗号分隔的位置列表)。当list只有1个元素时,它很简单,我这样做:

<dataConfig>
 <dataSource type="BinFileDataSource" name="bin"/>
 <dataSource  type="JdbcDataSource" name="sql"
              driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
              url="jdbc:sqlserver://localhost:1433;databaseName=db;Integrated Security=False;User Id=uss;Password=qwerty;" />
 <document>
    <entity name="content" query="select * from content" 
            transformer="RegexTransformer" dataSource="sql">
        <field column="id" name="id"/>
        <field column="title" name="title"/>
        <field column="body" name="body"/>

        <field column="attachmenttext" name="attachmenttext"/>
        <entity name='tik' processor="TikaEntityProcessor" 
                url="${content.filelocation}" dataSource="bin" format="text">
            <field column="text" name="attachmenttext" />
        </entity> 
    </entity>
 </document>
</dataConfig>

有没有办法告诉tika它应该从多个文件中提取文本?

我正在使用最新的Apache Solr版本(4.10.3)

schema.xml(包含字段的部分)

<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="_root_" type="string" indexed="true" stored="false"/>
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_general" indexed="true" stored="true"/>
<field name="body" type="text_general" indexed="true" stored="true"/>
<field name="attachmenttext" type="text_general" indexed="true" stored="true" multiValued="true"/>

0 个答案:

没有答案