0

私はphpとmysqlを使ってWebアプリケーションを構築しています。Webアプリケーションには3〜4個の大きなテーブル(テーブルあたり数百万のレコード)があり、テキストフィールドで用語を検索するには、Webアプリケーションで全文検索を実行できる必要があることが非常に重要です。完全な酸サポートとトランザクションが必要なため、このWebアプリケーションをmysqlで設計します。今、私はこの3〜4個のビッグデータテーブルの検索結果のクエリを用語(複数の単語)でより高速に実行する方法を理解しようとしています。

Solrを検討しています古いデータを保存するために、mysqlからsolrにデータをインポートする定期的なcronジョブを作成できると思いますが、理解できません。

  • ユーザーが数秒前に挿入したばかりのテキストを検索した場合、代わりにユーザーがたとえば2日前に古いテキスト挿入を検索した場合、どのようにmysqlで新しい結果をクエリできますか?

ユーザーが古いデータを変更した場合:

  • 他のユーザーに表示されるデータを即座に変更するために、salrのレコード一致を即座に更新するにはどうすればよいですか。

また

  • ユーザーが(トランザクションで)mysqlで古いデータを正しく更新し、すぐ次のアプリケーションが新しいデータ値で更新するためにsolrのデータも更新しようとしたが、うまく機能しない場合、ユーザーは新しいデータではなく古いデータをすでに表示できます。更新が失敗したため、solrにはすでに古いデータがあります。
4

1 に答える 1

0

Solrには、索引付けする文書を送信するためのXMLインターフェースがあります。アプリケーション内の検索可能なデータが更新されるたびに、追加/更新要求をsolrに送信できます。これにより、そのデータに「即座に」インデックスが付けられます。

于 2012-04-30T11:43:30.383 に答える