sql >> Database teknologi >  >> NoSQL >> MongoDB

Trin til at forbinde MongoDB og Solr ved hjælp af DataImportHandler

For sent at svare, men troede dog, at folk kunne finde det nyttigt.

Nedenfor er trinene til at importere data fra mongodb til Solr 4.7.0 ved hjælp af DataImportHandler.

Trin 1:

Antag, at din Mongodb har følgende database og samling

Database Name: Test
Collection Name: sample

sample samlingen har følgende dokumenter

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

Trin 2:

Opret en lib mappe i din solrhome-mappe (som har bin og collection1 mapper)

tilføj jar-filer nedenfor til lib folder. Du kan downloade solr-mongo-importer herfra!

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

Trin 3:

Erklær Solr-felter i schema.xml (antaget, at id'et allerede er defineret som standard)

tilføje felter nedenfor i schema.xml inde i <fields> </fields> tag.

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

Trin 4:

Erklær data-config-fil i solrconfig.xml ved at tilføje nedenstående kode inde i <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>

Trin 5:

Opret en data-config.xml-fil i stien collection1\conf\ (som som standard indeholder solrconfig.xml og 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>

Trin 6:

Forudsat at solr (jeg har brugt port 8080) og mongodb kører, skal du åbne følgende link http://localhost:8080/solr/dataimport?command=full-import i din browser for at importere data fra mongodb til solr.

De importerede felter er _id,Name og EmpNumber(MongoDB) som id,Name og EmployeeNumber(Solr).

Du kan se resultatet i http://localhost:8080/solr/query?q=*



  1. batchSize feltnavn ignoreret i Field Projection

  2. Hvordan kan jeg køre redis på en enkelt server på forskellige porte?

  3. Go:Opret io.Writer-interface til logning til mongodb-databasen

  4. Sammenlign arrays og returner forskellen