sql >> Databáze >  >> NoSQL >> MongoDB

Kroky pro připojení MongoDB a Solr pomocí DataImportHandler

Odpovědět pozdě, ale lidé si mysleli, že by to mohlo být užitečné.

Níže jsou uvedeny kroky pro import dat z mongodb do Solr 4.7.0 pomocí DataImportHandler.

Krok 1:

Předpokládejme, že váš Mongodb má následující databázi a kolekci

Database Name: Test
Collection Name: sample

sample sbírka má následující dokumenty

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

Krok 2:

Vytvořte lib složku ve vaší složce solrhome (která má bin a collection1 složky)

přidejte níže soubory jar do lib složka. Zde si můžete stáhnout 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)

Krok 3:

Deklarujte pole Solr v schema.xml (za předpokladu, že id je již definováno ve výchozím nastavení)

přidejte níže uvedená pole ve schema.xml do <fields> </fields> tag.

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

Krok 4:

Deklarujte soubor data-config v solrconfig.xml přidáním níže uvedeného kódu do <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>

Krok 5:

Vytvořte soubor data-config.xml v cestě collection1\conf\ (ve výchozím nastavení obsahuje soubory solrconfig.xml a 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>

Krok 6:

Za předpokladu, že solr (použil jsem port 8080) a mongodb běží, otevřete ve svém prohlížeči následující odkaz http://localhost:8080/solr/dataimport?command=full-import pro import dat z mongodb do solr.

importovaná pole jsou _id,Name a EmpNumber(MongoDB) jako id,Name a EmployeeNumber(Solr).

Výsledek můžete vidět na http://localhost:8080/solr/query?q=*



  1. Mapa-Snížení výkonu v MongoDb 2.2, 2.4 a 2.6

  2. MongoDB:zkontrolujte připojení k DB

  3. Hromadné požití do Redis

  4. Může redis plně nahradit mysql?