我正在使用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"/>