【问题标题】:How can we use solr with both MongoDB and MySQL?我们如何在 MongoDB 和 MySQL 中使用 solr?
【发布时间】:2020-10-19 23:09:51
【问题描述】:

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

例如,我有一个依赖于 MySQL 的一张表的 MongoDB 集合,

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

更新

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

- 使用 MySQL 的 Solr

<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 索引到 Solr?
  • ????这是一个“我想要一匹小马”类型的问题,很难简洁地回答,并且在 Stack Overflow 上是题外话。如果可以,请尝试一下,然后向我们展示您的代码,我们可以在技术层面上理解您想要做什么。即使是少量代码,无论多么不完整或损坏,都可以为我们提供上下文并说明您的意图。与其让我们推测您可能需要什么,不如给我们一些东西来构建,这样我们就可以将帮助集中在最需要的那些领域。
  • 编写一个索引脚本,从 MongoDB 和 MySQL 中提取您需要的数据,并在将其推送到 Solr 之前将其适当地合并?
  • @SaidbakR 谢谢你的回复,我知道这个过程,我正在使用它。我想将 solr 与 mongo 和 mysql 一起使用,以同时从它们两者中获取数据。
  • @MansiJoshi 你会用你熟悉的语言编写一个连接到 mongodb 的小程序,检索你想要索引的文档,然后连接到 MySQL 并检索这些文档的额外元数据然后将它们推送到 Solr。您可以在 Java、python、javascript、PHP 中执行此操作——任何带有 HTTP 客户端的语言(并且大多数语言也有专用的 Solr 客户端)。它会为您提供所需的结果。

标签: mysql mongodb solr


【解决方案1】:

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

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

现在通过使用 SolrJ apis 创建 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。

【讨论】:

猜你喜欢
  • 2012-02-27
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多