Mansi Joshi
Mansi Joshi

Reputation: 220

How can we use solr with both MongoDB and MySQL?

I want to use Solr with MongoDB and MySQL together and need to combine in single core.

For example, I have a MongoDB collection which has depends on MySQL's one table,

I tried both with separate Solr core it's working fine but i want it in single core, i don't know its possible or not, if its possible then how we can use?

Updated

Here my DIHs: (Data import Handler)

- Solr with 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 with 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>

So i want to do with the single core.

Upvotes: 0

Views: 170

Answers (1)

Abhijit Bashetti
Abhijit Bashetti

Reputation: 8668

You can read the data from Mysql and MongoDB. Merge this records in single record and the index the same into solr.

To get the data from MySql, use any programming language and fetch the data. For example you can use Java and fetch the data from mysql. Apply the same logic to MongoDB. Get all the required records from mongoDB using Java.

Now By using the SolrJ apis create the solrDocument. Read more about the SolrDOcument and other apis here

Once your create the instance of SolrDocument then add the data that you fetched from Mysql and MongoDB into it using the below method.

addField(String name, Object value)

This will add a field to the document.

You can prepare the document something like this.

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

Get a solr instance of HttpSolrClient. Once the SolrDocument is ready, index it to solr.

Upvotes: 2

Related Questions