sql >> Database >  >> NoSQL >> MongoDB

Stappen om MongoDB en Solr te verbinden met behulp van DataImportHandler

Laat om te antwoorden, maar dacht dat mensen het misschien nuttig zouden vinden.

Hieronder staan ​​de stappen voor het importeren van gegevens van mongodb naar Solr 4.7.0 met behulp van DataImportHandler.

Stap 1:

Neem aan dat uw Mongodb de volgende database en verzameling heeft

Database Name: Test
Collection Name: sample

Het sample collectie heeft de volgende documenten

db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }

Stap 2:

Maak een lib map in uw solrhome-map (met bin en collection1 mappen)

voeg onderstaande jar-bestanden toe aan lib map. Je kunt solr-mongo-importer hier downloaden!

- 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)

Stap 3:

Declareer Solr-velden in schema.xml (aangenomen dat id al standaard is gedefinieerd)

voeg onderstaande velden toe in schema.xml binnen de <fields> </fields> tag.

 <field name="Name" type="text_general" indexed="true" stored="true"/>
 <field name="EmployeeNumber" type="int" indexed="true" stored="true"/>

Stap 4:

Declareer het data-config-bestand in solrconfig.xml door onderstaande code toe te voegen in <config> </config> tag.

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

Stap 5:

Maak een data-config.xml-bestand in het pad collection1\conf\ (dat standaard solrconfig.xml en schema.xml bevat)

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>

Stap 6:

Ervan uitgaande dat solr (ik heb poort 8080 gebruikt) en mongodb actief zijn, opent u de volgende link http://localhost:8080/solr/dataimport?command=full-import in uw browser voor het importeren van gegevens van mongodb naar solr.

geïmporteerde velden zijn _id,Name en EmpNumber(MongoDB) als id,Name en EmployeeNumber(Solr).

U kunt het resultaat zien in http://localhost:8080/solr/query?q=*



  1. Werking van @cache_page() decorateur in django-redis-cache

  2. Redis cluster failover:slave wordt geen master

  3. JavaScript NoSQL-injectiepreventie in MongoDB

  4. mangoest/mongodb-query meerdere sorteringen