【问题标题】:Ingest data from multiple databases into a single solr collection将来自多个数据库的数据提取到单个 solr 集合中
【发布时间】:2020-03-26 21:06:35
【问题描述】:

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

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

1.有没有办法将多个数据库中的数据提取到一个 使用 DIH 进行单一 solr 收集?

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

【问题讨论】:

    标签: solr solrcloud data-ingestion


    【解决方案1】:

    是的,一个配置可以有多个datasources。为了配置额外的数据源,将另一个“数据源”标签添加到 data-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>
    

    【讨论】:

    • 因此,每当我需要使用来自不同数据源的数据填充索引时,解决此问题的唯一方法是在文档中添加一个新实体,指向所需的数据源以及每个检索到的每条记录实体查询将成为集合内的一条记录。我做对了吗?再次感谢您的帮助!
    • 节点由实体组成...这里所有实体数据将成为一条记录
    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2023-03-21
    相关资源
    最近更新 更多