我们如何将 solr 同时用于 MongoDB 和 MySQL?

How can we use solr with both MongoDB and MySQL?

我想将 SolrMongoDBMySQL 一起使用,需要在单核中组合。

例如,我有一个 MongoDB 集合,它依赖于 MySQL 的一个 table、

我尝试使用单独的 Solr 核心,它工作正常,但我希望它在单核中,我不知道它是否可能,如果可能的话,我们该如何使用?

已更新

这是我的 DIH:(数据导入处理程序)

- Solr 与 MySQL

<dataConfig>
    <dataSource 
        name="MySQl" 
        type="JdbcDataSource"
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost/test"
        user="root" password="root" 
        batchSize="-1"/>
    <document> 
        <entity 
            query="select * from master_table"
            name="master">                      
        </entity>   
    </document>
</dataConfig>

- Solr 与 MongoDB

<dataConfig>
    <dataSource 
        name="MyMongo" 
        type="MongoDataSource" 
        database="test" />
    <document>   
        <entity  
             processor="MongoEntityProcessor"
             query=""
             collection="MarketCity"   
             datasource="MyMongo"
             transformer="MongoMapperTransformer" 
             name="sample_entity">
                 <field column="_id"  name="id" mongoField="_id" />            
                 <field column="keyName" name="keyName" mongoField="keyName"/>                            
        </entity>   
    </document>
</dataConfig>

所以我想做单核

您可以读取 Mysql 和 MongoDB 的数据。将这些记录合并到单个记录中,并将相同的索引合并到 solr 中。

要从 MySql 获取数据,请使用任何编程语言并获取数据。 例如,您可以使用 Java 并从 mysql 获取数据。 将相同的逻辑应用于 MongoDB。使用 Java.

从 mongoDB 获取所有需要的记录

现在使用 SolrJ api 创建 solrDocument。阅读有关 SolrDOcument 和其他 API 的更多信息 here

创建 SolrDocument 实例后,使用以下方法将从 Mysql 和 MongoDB 获取的数据添加到其中。

addField(String name, Object value)

这将向文档中添加一个字段。

您可以像这样准备文档。

SolrInputDocument document = new SolrInputDocument();
document.addField("id", "123456");
document.addField("name", "Kevin Ross");
document.addField("price", "100.00");
solr.add(document);
solr.commit();

获取 HttpSolrClient 的 solr 实例。 一旦 SolrDocument 准备就绪,将其索引到 solr。