私はphpとmysqlを使ってWebアプリケーションを構築しています。Webアプリケーションには3〜4個の大きなテーブル(テーブルあたり数百万のレコード)があり、テキストフィールドで用語を検索するには、Webアプリケーションで全文検索を実行できる必要があることが非常に重要です。完全な酸サポートとトランザクションが必要なため、このWebアプリケーションをmysqlで設計します。今、私はこの3〜4個のビッグデータテーブルの検索結果のクエリを用語(複数の単語)でより高速に実行する方法を理解しようとしています。
Solrを検討しています古いデータを保存するために、mysqlからsolrにデータをインポートする定期的なcronジョブを作成できると思いますが、理解できません。
- ユーザーが数秒前に挿入したばかりのテキストを検索した場合、代わりにユーザーがたとえば2日前に古いテキスト挿入を検索した場合、どのようにmysqlで新しい結果をクエリできますか?
ユーザーが古いデータを変更した場合:
- 他のユーザーに表示されるデータを即座に変更するために、salrのレコード一致を即座に更新するにはどうすればよいですか。
また
- ユーザーが(トランザクションで)mysqlで古いデータを正しく更新し、すぐ次のアプリケーションが新しいデータ値で更新するためにsolrのデータも更新しようとしたが、うまく機能しない場合、ユーザーは新しいデータではなく古いデータをすでに表示できます。更新が失敗したため、solrにはすでに古いデータがあります。