サーチエンジンのsorとMongoDBの統合について

5261 ワード

環境:
Ubuntu 12.04  Solr 5.1.0  MongoDB db version:v2.0.4
1.Solr配置とMongoDBの取り付け
Solrのインストールは非常に簡単です。公式文書を参照してください。http://lucene.apache.org/solr/quickstart.html公式文書ではcloudという見本(-e指定)を使っていますが、最後にtechproductsを採用しました。基本命令は以下の通りです。
/:$ ls solr*
solr-5.1.0.zip
/:$ unzip -q solr-5.1.0.zip
/:$ cd solr-5.1.0/
bin/solr start -e techproducts -noprompt
公式文書によると、使用後にsorを閉じてこのサンプルの下のデータをクリアしたいなら、実行してください。
bin/solr stop -all ; rm -Rf example/techproducts/
このいくつかの命令を持ち出したのは、全体の過程であなたが絶えずに起動し、クローズし、クリアして、okまでです。
ここでは、アマチュアの配置文書に対して、ネット上のツッコミを入れたいです。このような手順では、ドキュメント全体を見ない方がいいです。
MongoDBのインストールはUbuntuの下で異常に馬鹿に見えます。ap-getが一番いいです。
2.SolrとMongoDBの整合
Solr公式から与えられたquickstartのドキュメントを見ると、xml、json、csvなどの複数の文書を検索できますが、これはまだMongoDBと統合できるものではありません。しかし、万能な人間は何とかして彼らを一緒にすることができます。
大丈夫です。leaderはいいです。私にリンクを投げました。http://www.cnblogs.com/sysuys/p/3403670.html。しかし、中のSolrバージョンが4.5であることを見た時、心は崩壊しました。でも、仕方がないです。もっといい方法が見つけられないようです。
そこで、私は死を恐れないで、苦しみを恐れない精神を発揮して、私は思い切って頭を下げて読んで、突然、一面のオアシスは私の目の前に現れて、ニマのこの文書の中にgithub住所があって、その上まさに使うgithubこのものです。
はい、このmono-connectorです。https://github.com/10gen-labs/mongo-connector/wiki/Getting-Startedほら、また公式文書を見つけました。ええ、頼りになります。最後の結果はやはり自分の国情発展に必要な配置文書を整理して整理しなければなりません。
もういいです。無駄話が多すぎて、直接ステップしましょう。
1)MongoDBのreplica setを建立する(コピー集は大体このように訳します)。
アプリ-getを使ってMongoDBをインストールした後、システムは自分でMongoDBのサーバーを起動します。私達はそれを殺します。
pkill mongod
コピーセットを指定して起動します。
mongod --replSet myDevReplSet
MongoDBの終端と起動はこのように簡単なようです。上のように起動すれば、フロントで動作します。また終了する必要がある時、直接Ctrl+Cです。起動時に&を加えると、バックグラウンドで運行します。もちろん、pkillまたはkillを使います。
次に、mono shellでコピーセットを初期化する。
weizheng@weizheng-HP-Pro-2080-Microtower-PC:~/solr-5.1.0$ mongo
MongoDB shell version: 2.0.4
connecting to: test
PRIMARY> rs.initiate()
この時にMongoDBのこちら側は直して、とても簡単で、1つのコピー集をプラスします。
2).mono-connectorの取り付け
インストールの参考https://github.com/10gen-labs/mongo-connectorは、非常に簡単で、一つの命令:
pip install mongo-connector
ヒントがないなら、python-pip、ap-getがあります。mogo-connectorはこの中間部品がいいです。でも、とりあえず、このものはSolrの配置ファイルを読みたいので、Solrの中の一部のところを直しました。これを使うのはもう一つの命令です。
3)Solr端の配置
これがmono-connectorや他の文章を参考にすると穴が大きいです。
a>
まず、これらはSolrのschema.xmlというファイルを修正させますが、Solrの本当のところを知っているうちに、このファイルの毛も見えませんでした。どこで修正しますか?
仕方がないです。この時に探してもいいです。探さなくてもいいです。強いfind命令を使いましょう。
weizheng@weizheng-HP-Pro-2080-Microtower-PC:~/solr-5.1.0$ find . -name "schema.xml"
./server/solr/configsets/basic_configs/conf/schema.xml
./server/solr/configsets/sample_techproducts_configs/conf/schema.xml
./example/example-DIH/solr/tika/conf/schema.xml
./example/example-DIH/solr/mail/conf/schema.xml
./example/example-DIH/solr/solr/conf/schema.xml
./example/example-DIH/solr/rss/conf/schema.xml
./example/example-DIH/solr/db/conf/schema.xml
./example/techproducts/solr/techproducts/conf/schema.xml
はい、私達の前のtechproductsのサンプルに対応して、結果には二つの関連があります。このキーワードがありますか?それはたぶんこの二つです。もちろん、この時は経験によって一番目の修正を選ぶべきです。前にユーザーのサンプルをクリアできるという話があります。つまり、二つ目の関連するschemal.xmlは削除できます。すぐに嫌な予感が生じます。このものは必ずSolrが開いている時に自動的に生成されます。どうやって生成されますか?おそらく上記の最初の位置schema.xmlのコピーです。後で確認しました。
本題に入り、修正箇所を見つけました。
開く
vi ./server/solr/configsets/sample_techproducts_configs/conf/schema.xml
id
置換テキスト
_id
追加


このいくつかのところを一つにしてマークを付けておけばいいです。後で調べやすいですか?また、ここに穴があります。
もとのものを注釈する
さもなくばSolrにjsonを追加します。あるいはxmlにはこのフィールドIDが要求されます。required=「true」です。これらのものは全部私が問題があって発見したものです。
schema.xmlの修正はこれです。
b>
ここにはもう一つの穴があります。実は私達はsorceonfig.xmlを修正しなければなりません。これらのものはどのように発見されましたか?
開く:
vi ./server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
このものはmono-connectorに使われます。mono-connectorは上のschema.xmlを取得するように要求します。このHandlerこそこの要求を処理するために重要です。公式文書では、これはデフォルトでオープンしたものと思われていますが、これについては言及していません。
c>
配置ファイルは上の二つです。これは複雑です。他のバージョンのSolrも同じです。
最後に、私達は先に言ったようにSolrを閉じて、example/techproductsディレクトリをクリアして、Solrを再起動して、techproductsを再起動します。例を再起動するとエラーが発生します。それはschema.xmlを修正したので、中のuniqueKeyが_になりました。IDではなく、これらのエラーが発生しますが、これらは無視できます。その後、その二つの構成ファイルがexmaple/techproductsというサンプルの構成ファイルにコピーされていることが分かります。
OK、Solr端の配置は完了しました。
4)mono-connectorを使ってSolrとMongoDBを接続する
もう一度githubの公式文書を参考にしたら、おめでとうございます。またピットを跳びました。現在の状況で、実行してください。
mongo-connector --auto-commit-interval=1 -d solr_doc_manager -t http://localhost:8983/solr/techproducts
注意してください。公式とは違って、この-tの後のリンクです。techproductsのサンプルを使っていますので、この名前を付けなければなりません。実はこのリンクは何をしているのかは全く分かりません。完全に各種の誤動作です。マウスが点々と出てきました。これはaut-comit-intervalパラメータを0に設定して、実験結果から見てください。ずっとMongoDBのデータをSolr側に送らないという意味です。公式文書とは正反対のようです。検証を続けます。
最終的な効果は、MongoDBにデータを追加し、1 s後にSolrに「*で照会すると、更新が表示されます。」