将多个数据库中的数据提取到单个 solr 集合中

Ingest data from multiple databases into a single solr collection

为了从单个数据库中摄取数据,我通常会实施一个过程来通过 DataImportHandler 加载它。它的设置非常简单,在加载时间方面似乎非常高效,而且对我来说效果非常好。加载、重新加载和保持更新很容易,无需付出任何额外的努力。

现在我有了不同的场景。我需要从多个数据库中摄取数据以提供单个 solr 集合,但是 DataImportHandler 似乎不是可行的方法,但我不确定。

1.有什么方法可以将多个数据库中的数据提取到一个 使用 DIH 的单个 solr 集合?

2。如果不可能;用更少的人实现它的最佳策略是什么 可能的努力?

是的,一个配置可以有多个 datasources。为了配置额外的数据源,将另一个 'dataSource' 标记添加到数据-config.xml。

datasource 有一个隐式属性 "name"。 如果有多个,则每个额外的数据源都必须由唯一名称标识 'name="datasource-2"' .

可能如下所示。

<dataSource type="JdbcDataSource" name="ds-1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://db1-host/dbname" user="db_username" password="db_password"/>
<dataSource type="JdbcDataSource" name="ds-2" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://db2-host/dbname" user="db_username" password="db_password"/>

这些可以在下面的实体中使用。

<entity name="one" dataSource="ds-1" ...>
   ..
</entity>
<entity name="two" dataSource="ds-2" ...>
   ..
</entity>