MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Các bước kết nối MongoDB và Solr bằng DataImportHandler

Muộn trả lời, tuy nhiên mọi người nghĩ rằng nó có thể hữu ích.

Dưới đây là các bước để nhập dữ liệu từ mongodb sang Solr 4.7.0 bằng DataImportHandler.

Bước 1:

Giả sử rằng Mongodb của bạn có cơ sở dữ liệu và bộ sưu tập sau

Database Name: Test
Collection Name: sample

sample bộ sưu tập có các tài liệu sau

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

Bước 2:

Tạo lib thư mục trong thư mục solrhome của bạn (có bincollection1 thư mục)

thêm các tệp jar bên dưới vào lib thư mục. Bạn có thể tải xuống solr-mongo-importorter từ đây!

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

Bước 3:

Khai báo các trường Solr trong schema.xml (giả sử rằng id đã được xác định theo mặc định)

thêm các trường bên dưới trong schema.xml bên trong <fields> </fields> thẻ.

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

Bước 4:

Khai báo tệp data-config trong solrconfig.xml bằng cách thêm mã bên dưới vào bên trong <config> </config> thẻ.

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

Bước 5:

Tạo tệp data-config.xml trong đường dẫn collection1 \ conf \ (theo mặc định chứa solrconfig.xml và 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>

Bước 6:

Giả sử solr (tôi đã sử dụng cổng 8080) và mongodb đang chạy, hãy mở liên kết sau http:// localhost:8080 / solr / dataimport? Command =full-import trong trình duyệt của bạn để nhập dữ liệu từ mongodb sang solr.

các trường được nhập là _id, Name và EmpNumber (MongoDB) dưới dạng id, Name và EmployeeNumber (Solr).

Bạn có thể xem kết quả trong http://localhost:8080/solr/query?q=*



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để chèn nếu không tồn tại cập nhật khác với mongoengine?

  2. Băm mật khẩu Mongoose

  3. MongoDB - Kéo nhiều đối tượng từ một mảng

  4. Mongodb chèn tài liệu không có trường _id

  5. Xử lý BSON Marshaling tùy chỉnh