4

レプリカセット構成で実行されているmongodbが提供するMONGO CONNECTORを使用して、MONGODBとSOLRを統合しようとしました。

**python2.7 mongo_connector.py -m localhost:27017 -t http://localhost:8983/solr -u_id -d ./doc_managers/solr_doc_manager.py**

私の出力は

2013-06-19 16:19:10,943 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (post) with body 'u'<commit ' in 0.012 seconds.

しかし、MONGODB からドキュメントを取得するように SOLR を構成できませんでした。MONGODB からドキュメントを取得するように SOLR を構成する方法を教えてください。SolrMongoImporter を使用する必要がありますか?

4

2 に答える 2

0

私は同じ問題に直面していました。解決できなかったので、興味深いリンクを見つけました: http://derickrethans.nl/mongodb-and-solr.html php スクリプトを介して mongo を solr に接続します。あ

于 2013-07-25T13:02:51.790 に答える
0

ステップ 1 : Mongo コネクタのインストール

mongo コネクタの実行をインストールするには

 Pip install mongo-connector

ステップ 2 : Solr コアの作成

 ./bin/solr create -c <corename>-p 8983 -s 3 -rf 3

ステップ 3 :Solr への設定

索引付けされる mongodb ドキュメントのフィールドは、schema.xml 構成ファイルで指定されます。vi エディターで schema.xml を開きます。として

vi/solr/solr-6.6.2/server/solr/configsets/data_driven_schema_configs/ 
conf/schema.xml

ステップ 4 : Mongo Connector は、インデックスを作成する各 mongodb ドキュメントに関連付けられたメタデータもフィールド ns および _ts に格納します。また、ns フィールドと _ts フィールドを schema.xml に追加します。

<schema>
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.5">
<field name="time_stamp" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="category" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="type" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="servername" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="code" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="msg" type="string" indexed="true"  stored="true"  
multiValued="false" />
<field name="_ts" type="long" indexed="true" stored="true" />
<field name="ns" type="string" indexed="true" stored="true"/>
 <field name="_version_" type="long" indexed="true" stored="true"/>

</schema>

ステップ 5 : また、solrconfig.xml で org.apache.solr.handler.admin.LukeRequestHandler 要求ハンドラーを構成する必要があります。 

vi エディターで solrconfig.xml を開きます。

 vi ./solr-5.3.1/server/solr/configsets/basic_configs/conf/solrconfig.xml

Mongo コネクタのリクエスト ハンドラを指定します。

*<requestHandler name="/admin/luke" 
class="org.apache.solr.handler.admin.LukeRequestHandler" />*

また、設定時間後に Solr が MongoDB からのデータを自動コミットするように、自動コミットを true に設定します。

<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>true</openSearcher>
</autoCommit>

ステップ 6 :Solr を再起動する必要があります

Bin/solr restart -force

MongoDB サーバーの起動 Mongo Connector では、Solr で MongoDB データのインデックスを作成するために、MongoDB レプリカ セットが実行されている必要があります。レプリカ セットは、レプリケーションと自動フェールオーバーを実装する MongoDB サーバーのクラスターです。レプリカ セットは単一のサーバーのみで構成でき、ポートは 27017 として指定され、MongoDB のデータ ディレクトリは /data/db として指定され、レプリカ セット名は –replSet オプションで rs0 として指定されます。

Sudo mongod --port 27017 --dbpath /data/db --replSet rs0

ステップ 7 : MongoDB シェルの開始 次のコマンドで MongoDB シェルを開始します。

Mongo

MongoDB シェルが開始されます。レプリカ セットを開始する必要があります。次のコマンドを実行して、レプリカ セットを開始します。

 rs.initiate()

ステップ 8 : MongoDB Connector の起動と Solr を使用した MongoDB データベースのインデックス作成 以下のように Mongo-connector コマンドを実行します。

mongo-connector --unique-key=id –n solr.wlslog -m localhost:27017 -t 
http://xx.xxx.xxx.xx:8983/solr/wlslog -d solr_doc_manager

上記のステートメントで solr.wlslog --> solr はデータベース名です wlslog はコレクション名です Solr/wlslog --> wlslog はコア名です

今後の参考のために、以下のリンクを使用して ください https://www.toadworld.com/platforms/nosql/b/weblog/archive/2017/02/03/indexing-mongodb-data-in-apache-solr

于 2017-12-28T13:00:49.707 に答える