MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Стъпки за свързване на MongoDB и Solr с помощта на DataImportHandler

Закъснява с отговора, но хората смятат, че може да е полезно.

По-долу са стъпките за импортиране на данни от mongodb в Solr 4.7.0 с помощта на DataImportHandler.

Стъпка 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 папка във вашата папка Solrhome (която има bin и collection1 папки)

добавете jar файлове по-долу към 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:

Декларирайте полетата Solr в schema.xml (приемаме, че идентификаторът вече е дефиниран по подразбиране)

добавете полета по-долу в schema.xml вътре в <fields> </fields> етикет.

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

Стъпка 4:

Декларирайте конфигурационния файл с данни в solrconfig.xml, като добавите кода по-долу в <config> </config> етикет.

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

Стъпка 5:

Създайте файл data-config.xml в пътя collection1\conf\ (който по подразбиране съдържа 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:

Ако приемем, че solr (използвах порт 8080) и mongodb работят, отворете следната връзка http://localhost:8080/solr/dataimport?command=full-import във вашия браузър за импортиране на данни от mongodb в solr.

импортираните полета са _id,Name и EmpNumber(MongoDB) като id,Name и EmployeeNumber(Solr).

Можете да видите резултата в http://localhost:8080/solr/query?q=*



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB и се присъединява

  2. твърде много отворени файлове в сървъра mgo go

  3. Как да анализирате използването на диск от Docker контейнер

  4. Тестване за интеграция на Spring Boot с вграден MongoDB

  5. Премахнете дубликатите, когато използвате $unionWith в MongoDB