2

残念ながら、MySQL 全文検索をまだサポートしていない RDS で InnoDB を使用しています。そのため、代替案を検討しています。私のアプリは Heroku にあり、検索機能を提供するさまざまなアドオンを検討しましたが、会社のテーブルが非常に大きく (~1 億レコード)、法外に高価だと思います。テーブルの 1 つのフィールド (会社名) だけを検索できればよいのです。

したがって、独自の「キーワード」テーブルを作成することを検討しています。基本的に、これはすべての会社名に含まれるすべての単語をリストします。次に、これらのキーワードと company_id の間の関連付けを示す別のテーブルがあります。

  1. これは良いアイデアのように聞こえますか?より良い代替手段はありますか?

  2. キーワード テーブルと関連付けテーブルを作成する最も効率的な方法は何ですか? 可能であれば、T-SQL を使用して実行したいと考えています。

4

1 に答える 1

2

LIKE '%word%'それは可能であり、クエリ を使用するよりもはるかに優れています。

ただし、適切なフルテキスト インデックスを使用する場合ほど効果的ではありません。

私のプレゼンテーションFull Text Search Throwdownを参照してください。ここでは、トライグラムを含む MySQL のフルテキスト ソリューションを比較しています。これは、検討しているキーワード ソリューションとほぼ同じです。

断然最速のソリューションは Sphinx Search でした。

于 2012-12-24T00:37:06.017 に答える