完全な InnoDB MySql データベースの 2 つのフィールドでテキスト検索を行う必要があります。過去に私は使用しました:
Field1 LIKE %text% OR Field2 LIKE %text%
しかし、今ではデータが大幅に増加し、「いいね」検索が遅くなりすぎました。そこで、別のより良い解決策を探し始めました。
今から私は試しました:
フルテキスト インデックス (MATCH(...) AGAINST) -> 先頭のワイルドカードをサポートしていません
CONTAINS -> MySql では使用不可 (Transact-Sql のみ)
フルテキスト インデックスを逆にする -> 先頭のワイルドカードで動作しますが、一致が途中にある場合は動作しません
REGEXP -> LIKE よりも速くはない
フルテキスト インデックスには MyISAM の「シャドー テーブル」を使用しました...
Sphinx、Lucene、se などの外部検索エンジンを使用したくない
だから私の質問:私が忘れたことはありますか?両方のワイルドカードを機能させるためのトリックを考えています。Oracle の CONTEXT インデックスのようなものです。または私は知りません...それが私が尋ねる理由です;)