Späte Antwort, aber ich dachte, die Leute könnten es nützlich finden.
Nachfolgend finden Sie die Schritte zum Importieren von Daten aus mongodb nach Solr 4.7.0 mit DataImportHandler.
Schritt 1:
Angenommen, Ihre Mongodb hat die folgende Datenbank und Sammlung
Database Name: Test
Collection Name: sample
Das sample
Sammlung hat folgende Dokumente
db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }
Schritt 2:
Erstellen Sie eine lib
Ordner in Ihrem solrhome-Ordner (der bin
enthält und collection1
Ordner)
fügen Sie die folgenden JAR-Dateien zu lib
hinzu Mappe. Sie können solr-mongo-importer hier herunterladen!
- 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)
Schritt 3:
Deklarieren Sie Solr-Felder in schema.xml (vorausgesetzt, dass die ID bereits standardmäßig definiert ist)
Fügen Sie die folgenden Felder in schema.xml innerhalb von <fields> </fields>
hinzu -Tag.
<field name="Name" type="text_general" indexed="true" stored="true"/>
<field name="EmployeeNumber" type="int" indexed="true" stored="true"/>
Schritt 4:
Deklarieren Sie die Datei data-config in solrconfig.xml, indem Sie den folgenden Code in <config> </config>
einfügen -Tag.
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
Schritt 5:
Erstellen Sie eine data-config.xml-Datei im Pfad collection1\conf\ (der standardmäßig solrconfig.xml und schema.xml enthält)
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>
Schritt 6:
Angenommen, solr (ich habe Port 8080 verwendet) und mongodb laufen, öffnen Sie den folgenden Link http://localhost:8080/solr/dataimport?command=full-import in Ihrem Browser, um Daten von mongodb nach solr zu importieren.
importierte Felder sind _id,Name und EmpNumber(MongoDB) als id,Name und EmployeeNumber(Solr).
Sie können das Ergebnis in http://localhost:8080/solr/query?q=*
sehen