MySQLの全文検索でテーブルがロックされる可能性があることを読みました。これは、検索中にテーブルを挿入または更新できないことを意味します。
多くの検索サーバー(LucenceとSphinx)が、テーブルをロックせずに、さらに高速に実行できることを読みました。多くの構成が必要で、実装が困難です。
検索サービスを使用せずに全文またはそのような検索を使用する他の方法はありますか?MySQL以外のサーバーをもう1つ構成したくありません。
MySQLの全文検索でテーブルがロックされる可能性があることを読みました。これは、検索中にテーブルを挿入または更新できないことを意味します。
多くの検索サーバー(LucenceとSphinx)が、テーブルをロックせずに、さらに高速に実行できることを読みました。多くの構成が必要で、実装が困難です。
検索サービスを使用せずに全文またはそのような検索を使用する他の方法はありますか?MySQL以外のサーバーをもう1つ構成したくありません。
FULLTEXT 検索を実行するためだけに使用される追加のテーブルを作成します。コードでは、すべてのデータとアクション (作成、更新、削除) がこのテーブルに適切にレプリケートされるようにする必要があります。このソリューションは、InnoDB エンジンなどのデータ テーブルが実行されている場合にも便利です。
Apache Lucene は多くの構成を必要とせず、実装も難しくありません。さらに、これは最も人気のある全文検索エンジンの 1 つであり、ユーザーは「to be or not to be」、j?hn d?e、func* などの非常に正確なクエリを実行できます。
すでに Lucene を使用してデータベースのインデックス作成を行っているので、どのテーブルのどのフィールドにインデックスを作成するかについてもう少し正確に説明できれば、トリックを実行するコードを提供できます。
とにかくSphinxsearchに投票します。Mysql に近い API の 1 つを備えており、インストールと構成が簡単です。Apache Lucene ほど普遍的ではありませんが、私のプロジェクトでは非常に迅速で非常に役立ちます。