これはPGroonga 2.0.0以降用のドキュメントです。PGroonga 1.Xを使っているならPGroonga 1.Xのドキュメントを見てください。
%%演算子この演算子は1.2.0から非推奨です。代わりに&@演算子を使ってください。
%%は1つのキーワードで全文検索を実行します。
column %% keyword
columnは検索対象のカラムです。型はtext型、text[]型、varchar型のどれかです。
keywordは全文検索で使うキーワードです。columnがtext型またはtext[]型ならkeywordはtext型です。columnがvarchar型ならkeywordはvarchar型です。
この演算子を使うには次のどれかの演算子クラスを指定する必要があります。
pgroonga_text_full_text_search_ops_v2:text型のデフォルト
pgroonga_text_array_full_text_search_ops_v2:text[]型のデフォルト
pgroonga_varchar_full_text_search_ops_v2:varchar用
pgroonga_text_full_text_search_ops:text用
pgroonga_text_array_full_text_search_ops:text[]用
pgroonga_varchar_full_text_search_ops:varchar用
例に使うサンプルスキーマとデータは次の通りです。
CREATE TABLE memos (
id integer,
content text
);
CREATE INDEX pgroonga_content_index ON memos USING pgroonga (content);
INSERT INTO memos VALUES (1, 'PostgreSQLはリレーショナル・データベース管理システムです。');
INSERT INTO memos VALUES (2, 'Groongaは日本語対応の高速な全文検索エンジンです。');
INSERT INTO memos VALUES (3, 'PGroongaはインデックスとしてGroongaを使うためのPostgreSQLの拡張機能です。');
INSERT INTO memos VALUES (4, 'groongaコマンドがあります。');
%%演算子を使うと1つキーワードで全文検索できます。
SELECT * FROM memos WHERE content %% '全文検索';
-- id | content
-- ----+---------------------------------------------------
-- 2 | Groongaは日本語対応の高速な全文検索エンジンです。
-- (1 row)
複数のキーワードで全文検索したいときやAND/ORを使った検索をしたいときは&@~演算子を使います。
複数のキーワードでOR全文検索をしたいときは&@|演算子を使います。