答えるのが遅いが、人々はそれが役に立つと思うかもしれないと思った。
以下は、DataImportHandlerを使用してmongodbからSolr4.7.0にデータをインポートするための手順です。
ステップ1:
Mongodbに次のデータベースとコレクションがあると仮定します
Database Name: Test
Collection Name: sample
sample
コレクションには次のドキュメントがあります
db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }
ステップ2:
lib
を作成します solrhomeフォルダー内のフォルダー(bin
があります) およびcollection1
フォルダ)
以下のjarファイルをlib
に追加します フォルダ。ここからsolr-mongo-importerをダウンロードできます!
- 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)
ステップ3:
schema.xmlでSolrフィールドを宣言します(idはデフォルトですでに定義されていると想定しています)
<fields> </fields>
内のschema.xmlに以下のフィールドを追加します タグ。
<field name="Name" type="text_general" indexed="true" stored="true"/>
<field name="EmployeeNumber" type="int" indexed="true" stored="true"/>
ステップ4:
<config> </config>
内に以下のコードを追加して、solrconfig.xmlでdata-configファイルを宣言します。 タグ。
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
ステップ5:
パスcollection1\conf \にdata-config.xmlファイルを作成します(デフォルトではsolrconfig.xmlと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>
ステップ6:
solr(ポート8080を使用)とmongodbが実行されていると仮定して、次のリンクhttp:// localhost:8080 / solr / dataimport?command =full-importをブラウザーで開き、mongodbからsolrにデータをインポートします。
インポートされるフィールドは、id、NameおよびEmployeeNumber(Solr)として_id、NameおよびEmpNumber(MongoDB)です。
結果はhttp://localhost:8080/solr/query?q=*
で確認できます。