今回はPostgreSQLでpg_bigmを試してみます。
SQLで全文検索を考えたとき、とりあえずデータ量が多くなければLIKE検索でできます。
select data from small_table where data like '%りんご%';
%りんご%
の指定により、文中のどこかでりんごが含まれるデータを検索することができます。%
は正規表現でいうところの*+
に相当し、0文字以上の何かに相当します。
しかし、この方法ではほとんどのRDBMSではINDEXが使えないためTABLEすべてにアクセスする必要があり、パフォーマンスが出ません。なお、りんご%
といった前方一致であればINDEXが使えるケースもあります。
このようにデータのどこかに指定したワードがあるかを探すには全文検索機能が必要になります。
続きを読む