This is a document for PGroonga 2.X and 3.X. See PGroonga 1.x document when you're using old PGroonga.
&@|
operatorSince 1.2.1.
&@>
operator is deprecated since 1.2.1. Use &@|
operator instead.
&@|
operator performs full text search by array of keywords. If one or more keywords are found, the record is matched.
column &@| keywords
column
is a column to be searched. It's text
type, text[]
type or varchar
type.
keywords
is an array of keywords for full text search. It's text[]
type for text
type or text[]
type column
. It's varchar[]
for varchar
type column
.
The operator returns true
when one or more keyword in keywords
are included in column
.
You need to specify one of the following operator classes to use this operator:
pgroonga_text_full_text_search_ops_v2
: Default for text
pgroonga_text_array_full_text_search_ops_v2
: Default for text[]
pgroonga_varchar_full_text_search_ops_v2
: For varchar
Here are sample schema and data for examples:
CREATE TABLE memos (
id integer,
content text
);
CREATE INDEX pgroonga_content_index ON memos
USING pgroonga (content pgroonga_text_full_text_search_ops_v2);
INSERT INTO memos VALUES (1, 'PostgreSQL is a relational database management system.');
INSERT INTO memos VALUES (2, 'Groonga is a fast full text search engine that supports all languages.');
INSERT INTO memos VALUES (3, 'PGroonga is a PostgreSQL extension that uses Groonga as index.');
INSERT INTO memos VALUES (4, 'There is groonga command.');
You can perform full text search with keywords by &@|
operator:
SELECT * FROM memos WHERE content &@| ARRAY['engine', 'database'];
-- id | content
-- ----+------------------------------------------------------------------------
-- 1 | PostgreSQL is a relational database management system.
-- 2 | Groonga is a fast full text search engine that supports all languages.
-- (2 rows)
column &@| ARRAY['KEYWORD1', 'KEYWORD2']
equals to column &@~ 'KEYWORD1 OR KEYWORD2'
.
&@
operator: Full text search by a keyword
&@~
operator: Full text search by easy to use query language
&@~|
operator: Full text search by an array of queries in easy to use query language