最近、MongoDB と Apache Solr を使い始めました。MongoDB をデータ ストアとして使用しており、アプリケーションの検索機能用にデータのインデックスを Apache Solr で作成したいと考えています。
調査の結果、MongoDB と Solr の間でデータを同期するには、基本的に 2 つの方法があることがわかりました。
1) Solr DataImportHandler を使用 -
このために、james によって作成された SolrMongoImporter を使用し、githubの彼のチュートリアルに従いました。
Import Handler を正常に実行でき、Solr は ImportHandler を識別しましたが、solr にドキュメントをインポートしていませんでした。更新されたドキュメント= 0と表示されるたびに。
2)次に、MongoDB側に切り替えて、そこに何かがあるかどうかを調べてみたところ、 10genが提供するMongoDBConnectorが見つかりました。
指示に従ってコネクタを実行すると、大量のドキュメントを Solr に投稿しようとして、次の出力が得られます。
2012-11-24 15:15:20,665 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.
2012-11-24 15:15:21,674 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.009 seconds.
2012-11-24 15:15:22,683 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:23,694 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.
2012-11-24 15:15:24,702 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:25,711 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.008 seconds.
2012-11-24 15:15:26,722 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (POST) with body '<commit />' in 0.010 seconds.
しかし、Solr にはデータがありません。
皆さんにとってどのアプローチが効果的かを知りたかったのですが、MongoDB と Solr の統合に関する優れたチュートリアルはありますか。
また、MongoDB と solr の間のリアルタイム同期を探しています。つまり、mongodb に製品が追加されるとすぐに、solr インデックスで更新され、検索結果に反映されるようにしたいと考えています。
MongoDB 2.0.4 と Solr 3.6.1 を使用しています。