Laat om te antwoorden, maar dacht dat mensen het misschien nuttig zouden vinden.
Hieronder staan de stappen voor het importeren van gegevens van mongodb naar Solr 4.7.0 met behulp van DataImportHandler.
Stap 1:
Neem aan dat uw Mongodb de volgende database en verzameling heeft
Database Name: Test
Collection Name: sample
Het sample
collectie heeft de volgende documenten
db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }
Stap 2:
Maak een lib
map in uw solrhome-map (met bin
en collection1
mappen)
voeg onderstaande jar-bestanden toe aan lib
map. Je kunt solr-mongo-importer hier downloaden!
- 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)
Stap 3:
Declareer Solr-velden in schema.xml (aangenomen dat id al standaard is gedefinieerd)
voeg onderstaande velden toe in schema.xml binnen de <fields> </fields>
tag.
<field name="Name" type="text_general" indexed="true" stored="true"/>
<field name="EmployeeNumber" type="int" indexed="true" stored="true"/>
Stap 4:
Declareer het data-config-bestand in solrconfig.xml door onderstaande code toe te voegen in <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>
Stap 5:
Maak een data-config.xml-bestand in het pad collection1\conf\ (dat standaard solrconfig.xml en schema.xml bevat)
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>
Stap 6:
Ervan uitgaande dat solr (ik heb poort 8080 gebruikt) en mongodb actief zijn, opent u de volgende link http://localhost:8080/solr/dataimport?command=full-import in uw browser voor het importeren van gegevens van mongodb naar solr.
geïmporteerde velden zijn _id,Name en EmpNumber(MongoDB) als id,Name en EmployeeNumber(Solr).
U kunt het resultaat zien in http://localhost:8080/solr/query?q=*