जवाब देने में देर हो गई, हालांकि सोचा कि लोगों को यह उपयोगी लग सकता है।
DataImportHandler का उपयोग करके mongodb से Solr 4.7.0 में डेटा आयात करने के चरण नीचे दिए गए हैं।
चरण 1:
मान लें कि आपके Mongodb में निम्नलिखित डेटाबेस और संग्रह हैं
Database Name: Test
Collection Name: sample
sample
संग्रह में निम्नलिखित दस्तावेज़ हैं
db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }
चरण 2:
एक lib
बनाएं आपके सोलरहोम फोल्डर में फोल्डर (जिसमें bin
. है) और collection1
फोल्डर)
नीचे जार फ़ाइलों को lib
. में जोड़ें फ़ोल्डर। आप यहाँ से solr-mongo-importer डाउनलोड कर सकते हैं!
- solr-dataimporthandler-4.7.0.jar
- solr-mongo-importer-1.0.0.jar
- mongo-java-driver-2.10.1.jar (this is the mongo java driver)
चरण 3:
स्कीमा.एक्सएमएल में सोलर फ़ील्ड घोषित करें (मान लिया गया कि आईडी पहले से ही डिफ़ॉल्ट रूप से परिभाषित है)
<fields> </fields>
. के अंदर schema.xml में नीचे फ़ील्ड जोड़ें टैग।
<field name="Name" type="text_general" indexed="true" stored="true"/>
<field name="EmployeeNumber" type="int" indexed="true" stored="true"/>
चरण 4:
<config> </config>
के अंदर नीचे दिए गए कोड को जोड़कर solrconfig.xml में डेटा-कॉन्फ़िगरेशन फ़ाइल घोषित करें टैग।
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
चरण 5:
संग्रह1\conf\ पथ में डेटा-config.xml फ़ाइल बनाएं (जो डिफ़ॉल्ट रूप से solrconfig.xml और schema.xml रखता है)
data-config.xml
<?xml version="1.0"?>
<dataConfig>
<dataSource name="MyMongo" type="MongoDataSource" database="Test" />
<document name="import">
<!-- if query="" then it imports everything -->
<entity processor="MongoEntityProcessor"
query="{Name:'Rahul'}"
collection="sample"
datasource="MyMongo"
transformer="MongoMapperTransformer" name="sample_entity">
<!-- If mongoField name and the field declared in schema.xml are same than no need to declare below.
If not same than you have to refer the mongoField to field in schema.xml
( Ex: mongoField="EmpNumber" to name="EmployeeNumber"). -->
<field column="_id" name="id"/>
<field column="EmpNumber" name="EmployeeNumber" mongoField="EmpNumber"/>
</entity>
</document>
</dataConfig>
चरण 6:
मान लें कि सोलर (मैंने पोर्ट 8080 का उपयोग किया है) और मोंगोडब चल रहे हैं, निम्न लिंक खोलें http://localhost:8080/solr/dataimport?command=full-import mongodb से solr में डेटा आयात करने के लिए अपने ब्राउज़र में।
आयातित फ़ील्ड _id, नाम और EmpNumber (MongoDB) आईडी, नाम और कर्मचारी संख्या (सोलर) के रूप में हैं।
आप परिणाम http://localhost:8080/solr/query?q=*
में देख सकते हैं