これはPGroonga 1.X用のドキュメントです。新しいPGroongaを使っているならPGroonga 2.xのドキュメントを見てください。
varchar[]
用の%%
演算子This operator is deprecated since 1.2.1. Use &>
operator instead.
%%
operator checks whether a term is included in an array of terms.
column %% term
column
は検索対象のカラムです。型はvarchar[]
型です。
term
は検索条件の単語です。型はvarchar
です。
この演算子を使うには次のどれかの演算子クラスを指定する必要があります。
pgroonga.varchar_array_ops
:varchar[]
型のデフォルト
pgroonga.varchar_array_term_search_ops
:varchar[]
用
例に使うサンプルスキーマとデータは次の通りです。
CREATE TABLE memos (
id integer,
tags varchar(255)[]
);
CREATE INDEX pgroonga_tags_index ON memos USING pgroonga (tags);
INSERT INTO memos VALUES (1, ARRAY['PostgreSQ']);
INSERT INTO memos VALUES (2, ARRAY['Groonga']);
INSERT INTO memos VALUES (3, ARRAY['PGroonga', 'PostgreSQL', 'Groonga']);
INSERT INTO memos VALUES (4, ARRAY['Groonga']);
%%
演算子を使うと単語の配列中から'Groonga'
という単語を含むレコードを検索できます。
SELECT * FROM memos WHERE tags %% 'Groonga';
-- id | tags
-- ----+-------------------------------
-- 2 | {Groonga}
-- 3 | {PGroonga,PostgreSQL,Groonga}
-- 4 | {Groonga}
-- (3 rows)
&>
演算子:検索対象の単語の配列に指定した単語が含まれているかをチェック