&@演算子

1.2.0で追加。

概要

&@演算子は1つのキーワードで全文検索を実行します。

構文

column &@ keyword

columnは検索対象のカラムです。型はtext型、text[]型、varchar型のどれかです。

keywordは全文検索で使うキーワードです。columntext型またはtext[]型ならkeywordtext型です。columnvarchar型ならkeywordvarchar型です。

演算子クラス

この演算子を使うには次のどれかの演算子クラスを指定する必要があります。

使い方

例に使うサンプルスキーマとデータは次の通りです。

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全文検索をしたいときは&@|演算子を使います。

参考