我们如何将 solr 同时用于 MongoDB 和 MySQL?
How can we use solr with both MongoDB and MySQL?
我想将 Solr
与 MongoDB
和 MySQL
一起使用,需要在单核中组合。
例如,我有一个 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。
我想将 Solr
与 MongoDB
和 MySQL
一起使用,需要在单核中组合。
例如,我有一个 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。