2011-01-05 4 views
12

ここではMySQLとファセット検索に関するいくつかの質問を参照していましたが、Solrの使用を示唆する回答が1件ありました。SolrをMySQLで使用する

私のMySQLデータベースには、製品、サプライヤ、メッセージ、ユーザーなどの多くのテーブルがすべて相互接続されています。 Solrを使って製品のファセット検索を行うにはどうすればよいですか?私が理解しているところから、私はSolrの製品データをMySQLから引き続き提供する必要がありますが、データのインデックス作成はどのように扱うのですか?新しい製品を追加した直後にインデックスを作成しますか?バッチインデックスですか?私のMySQLデータベースにあるデータをSolrが正確に表現する方法をどのように扱いますか? (挿入、削除など)

ありがとうございます。

+0

でチュートリアルを行くべき?この種の非正規化と更新をかなり透過的に処理できる多くの優れたSolrクライアント(Rubyアプリケーション用のSunspotなど)があります。 –

+0

私は現在、PHPでCodeIgniterフレームワークを使用しています。あなたが私に提案できるものは何ですか? – RS71

答えて

8

data import handlerをご覧ください。バッチ更新とは別に、update request handlerを呼び出して更新をトリガーすることもできます。アプリケーションから呼び出す必要がありますが、必要に応じて独自のカスタム更新要求ハンドラを作成することもできます。

+0

削除はどのように扱いますか?私が理解しているところでは、データインポートハンドラはほとんどが挿入と更新を扱います。ありがとう。 – RS71

+0

Solrでの削除処理については、これを確認してください。 http://stackoverflow.com/questions/1555610/solr-dih-how-to-handle-deleted-documents –

+0

追加、更新、および削除は、アップデートハンドラによって処理されます。アクションは送信されたXMLメッセージに依存します。このリソースを確認してください:http://wiki.apache.org/solr/UpdateXmlMessages#A.22delete.22_by_ID_and_by_Query。極端な場合には、DBテーブルの挿入/更新/削除時にトリガするストアプロシージャを記述することができます。しかし、あなたの上にアプリケーションがある場合は、私はそれにベーキングインデックスメンテナンスロジックと行くだろう。 – jarekrozanski

0

データインポートハンドラを使用する場合はdelta import commandを使用してください。

+0

Jarekrozanskiさんの回答のコメントに私の質問を参照してください。ありがとう。 – RS71

0

SOLRはJavaアプリケーションですが、HTTP GET/POST機能を提供する任意の言語を使用してアクセスできます。あなたの必要性のための

あなたはhttp://wiki.apache.org/solr/DataImportHandler を参照してくださいが、インデックス部分にジャンプする前に建てられたアプリケーションでどのような言語とフレームワークlucene.apache.org/Solrの/tutorial.html

関連する問題