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.2.
&?|
operator is deprecated since 1.2.2. Use &@~|
operator instead.
&?>
operator is deprecated since 1.2.1. Use &@~|
operator instead.
&@~|
operator performs full text search by an array of queries. If one or more queries are matched, the record is matched.
Query's syntax is similar to syntax that is used in Web search engine. For example, you can use OR search by KEYWORD1 OR KEYWORD2
in query.
column &@~| queries
column
is a column to be searched. It's text
type, text[]
type or varchar
type.
queries
is an array of queries for full text search. It's text[]
type for text
type or text[]
type column
. It's varchar[]
for varchar
type column
.
Groonga's query syntax is used in query
.
The operator returns true
when one or more queries in queries
are matched against 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 queries by &@~|
operator:
SELECT * FROM memos WHERE content &@~| ARRAY['Groonga engine', 'PostgreSQL -PGroonga'];
-- 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)
Groonga engine
query matches against a record that its id
is 2
.
PostgreSQL -PGroonga
query matches against a record that its id
is 1
.
&@~
operator: Full text search by easy to use query language
&@|
operator: Full text search by an array of keywords