SolR 数据导入处理程序是否有办法从 RDBMS 获取元数据并从 Tika 获取相关文件内容?

Is there a way for SolR data import handler to get Metadata from RDBMS and related file content from Tika?

我打算使用 solr 的数据导入处理程序从 rdbms 记录创建文档。 rdbms 列之一是 pdf/word 文件路径。我想做的是用 Tika 解析文件并将文本结果保存在上述文档的另一个字段中。我的最终文档应该在同一文档中包含 rdbms 和 tika 导入数据。

例如

来自数据库的文档字段:作者,publish_year,电子邮件

来自 tika 的文档字段:plain_text

这是否可能作为数据导入处理程序中的单个文档类型配置,或者我应该做单独的数据处理程序导入(sql & tika 作为单独的文档类型)然后从我的查询中进行连接?

是的。经过反复试验,以下配置有效:

<dataConfig>
    <dataSource name="ds-db" driver="org.mariadb.jdbc.Driver" url="jdbc:mysql://localhost:3306/eepyakm?user=root" user="root" password="root"/>
    <dataSource name="ds-file" type="BinFileDataSource"/>
    <document>
        <entity name="supplier" query="select * from suppliers_tmp_view" dataSource="ds-db" 
                deltaQuery="select id from suppliers_tmp_view where last_modified > '${dataimporter.last_index_time}'"
                deltaImportQuery="select * from suppliers_tmp_view where id='${dataimporter.delta.id}'">
             
            <entity name="attachment" dataSource="ds-db" 
                    query="select * from suppliers_tmp_files_view where supplier_tmp_id='${supplier.id}' and path is not null"
                    deltaQuery="select id,supplier_tmp_id from suppliers_tmp_files_view where last_modified > '${dataimporter.last_index_time}' and path is not null"
                    parentDeltaQuery="select id from suppliers_tmp_view where id='${attachment.supplier_tmp_id}'">
            
                <field name="path" column="path"/>
                
                <entity name="file" onError="skip" processor="TikaEntityProcessor"  url="${attachment.path}" format="text" dataSource="ds-file">
                    
                    <field column="text"/>
                </entity>
            </entity>
        </entity>
    </document>
</dataConfig>

发生的情况是两个不同类型的数据源在嵌套实体配置中一起工作。 db 数据源获取文件名,文件数据源检索 Tika 处理器的文件内容。