2014-01-30 15 views
8

Ich bin neu in SOLR und MONGODB.Schritte zum Verbinden von MongoDB und Solr mit DataImportHandler

Ich versuche, Daten von Mongodb in SOLR mit DataImportHandler zu indizieren, aber ich konnte die genauen Schritte nicht finden, denen ich folgen muss.

Könnten Sie mir bitte helfen, die genauen Schritte zu erhalten, um MongoDB mit DataImportHandler in Solr zu indizieren?

SolrVersion - solr-4.6.0

MongoDB version- 2.2.7

Antwort

3

Sie versuchen SolrMongoImporter verwenden können, Sie gefragt, 2 Bibliotheken in Ihre solr proyect importieren und ein Datum-config.xml erstellen .

Sie wahrscheinlich müssen in Ihren solrconfig.xml die folgenden Bibliotheken importieren, wenn Sie es

haben nicht
<lib dir="../../../contrib/dataimporthandler/lib" regex=".*\.jar" /> 
    <lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" /> 
+0

Für mich gibt es einige Performance-Probleme für SolrMongoImporter sind auf größeren mongoDB. Also habe ich mongoSolrImporter getestet, was 10x schneller war, wegen Multithreading. -> https://github.com/5missions/mongoSolrImporter –

21

Spät, aber zu beantworten dachte man, es nützlich finden könnten.

Nachstehend finden Sie die Schritte zum Importieren von Daten von mongodb nach Solr 4.7.0 mit DataImportHandler.

Schritt 1:

Angenommen, Ihre MongoDB folgende Datenbank und Sammlung hat

Database Name: Test 
Collection Name: sample 

Die 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 lib Ordner in Ihrem Solrhome für lder (die bin und collection1 Ordner hat)

fügen Sie unten jar Dateien zu lib Ordner. Sie können den Solr-Mongo-Importer von here 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 Solr Felder in schema.xml (angenommen, dass id standardmäßig bereits definiert ist)

unteren Felder in schema.xml innerhalb des <fields> </fields> Tag hinzuzufügen.

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

Schritt 4:

Deklarieren Daten-config-Datei in solrconfig.xml nach innen <config> </config> tag unten Code hinzufügen.

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

Schritt 5:

eine daten config.xml Datei in dem Pfad collection1 \ conf \ erstellen (das standardmäßig solrconfig.xml und schema.xml hält)

Daten-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:

Unter der Annahme, solr (ich habe verwendet Port 8080) und mongodb ausgeführt wird, öffnen Sie den folgenden Link http://localhost:8080/solr/dataimport?command=full-import in Ihrem Browser, um Daten von mongodb zu solr importieren.

Die importierten Felder sind _id, Name und EmpNumber (MongoDB) als ID, Name und EmployeeNumber (Solr).

können Sie sehen das Ergebnis in http://localhost:8080/solr/query?q=*

+0

1.wenn Sie Ihre Abfrage in Bezug auf Parameter ändern möchten, können Sie 'query =" {Parameter} "' in 'Prozessor =" MongoEntityProcessor "' –

+0

2.you erwähnen kann die folgende Konfiguration für die Sammlung in Version 5.1 'solr-5.1.0 \ server \ solr \ configsets \ basic_configs \ conf' als' SolrHome \ collection \ conf' verwenden und zusammen mit dieser 'solr-5.1.0 \ server \ solr \ solr.xml' als 'SolrHome \ solr.xml' –

+0

Ich bin neu bei Solr und ich muss wirklich Daten von MongoDB in Solr indizieren, um Suchanfragen zu stellen, ich habe versucht, mongo-connector, aber es zeigt keinen Fehler, aber die Terminal bleibt mit "Logging to mongo-connector.log" hängen, also habe ich Ihre Schritte bis zum Buchstaben verfolgt und als es den dataimportHandler konfiguriert hat, jedoch nicht die Daten von mongoDB abruft, vermute ich, dass es etwas mit "Daten" zu tun hat "config.xml", vielleicht ein Treiber? Kannst du mir bitte Helfen ? – Jean

Verwandte Themen