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 处理器的文件内容。
我打算使用 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 处理器的文件内容。