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ó bin
và collection1
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=*