F.52. pg_tsparser â ÑекÑÑовÑй поиÑк #
pg_tsparser â ÑÑо ÑаÑÑиÑение Postgres Pro Ð´Ð»Ñ ÑекÑÑового поиÑка. ÐÑо ÑаÑÑиÑение менÑÐµÑ ÑÑандаÑÑнÑÑ ÑÑÑаÑÐµÐ³Ð¸Ñ ÑазбоÑа ÑекÑÑа Ð´Ð»Ñ Ñлов, вклÑÑаÑÑиÑ
:
подÑÑÑкиваниÑ
ÑиÑÑÑ Ð¸ бÑквÑ, ÑазделÑннÑе знаком минÑÑа
Рдополнение к оÑделÑнÑм ÑаÑÑÑм Ñлова, возвÑаÑаемÑÑ
по ÑмолÑаниÑ, pg_tsparser Ñакже возвÑаÑÐ°ÐµÑ Ð²ÑÑ Ñлово.
F.52.1. УÑÑановка и наÑÑÑойка #
РаÑÑиÑение pg_tsparser вÑ
Ð¾Ð´Ð¸Ñ Ð² ÑоÑÑав Postgres Pro. ЧÑÐ¾Ð±Ñ Ð·Ð°Ð´ÐµÐ¹ÑÑвоваÑÑ pg_tsparser, ÑÑÑановив Postgres Pro, ÑоздайÑе ÑаÑÑиÑение pg_tsparser в каждой базе даннÑÑ
, где Ð²Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÑеÑе его иÑполÑзоваÑÑ:
CREATE EXTENSION pg_tsparser;
ÐкÑивиÑовав pg_tsparser, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑоздаваÑÑ ÑобÑÑвеннÑе конÑигÑÑаÑии ÑекÑÑового поиÑка. ÐмеÑÑе Ñ pg_tsparser можно иÑполÑзоваÑÑ Ð»Ñбой имеÑÑийÑÑ ÑловаÑÑ.
ÐапÑимеÑ, Ñак можно ÑоздаÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ english_ts Ð´Ð»Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкого ÑзÑка:
CREATE TEXT SEARCH CONFIGURATION english_ts (
PARSER = tsparser
);
COMMENT ON TEXT SEARCH CONFIGURATION english_ts IS 'text search configuration for english language';
ALTER TEXT SEARCH CONFIGURATION english_ts
ADD MAPPING FOR email, file, float, host, hword_numpart, int,
numhword, numword, sfloat, uint, url, url_path, version
WITH simple;
ALTER TEXT SEARCH CONFIGURATION english_ts
ADD MAPPING FOR asciiword, asciihword, hword_asciipart,
word, hword, hword_part
WITH english_stem;F.52.2. ÐÑимеÑÑ #
СледÑÑÑие пÑимеÑÑ Ð¸Ð»Ð»ÑÑÑÑиÑÑÑÑ ÑазлиÑÐ¸Ñ Ð² ÑезÑлÑÑаÑаÑ
поиÑка, возвÑаÑаемÑÑ
анализаÑоÑом ÑекÑÑа pg_tsparser и ÑÑандаÑÑнÑм анализаÑоÑом:
SELECT to_tsvector('english', 'pg_trgm') as def_parser,
to_tsvector('english_ts', 'pg_trgm') as new_parser;
def_parser | new_parser
-----------------+-----------------------------
'pg':1 'trgm':2 | 'pg':2 'pg_trgm':1 'trgm':3
(1 row)
SELECT to_tsvector('english', '123-abc') as def_parser,
to_tsvector('english_ts', '123-abc') as new_parser;
def_parser | new_parser
-----------------+-----------------------------
'123':1 'abc':2 | '123':2 '123-abc':1 'abc':3
(1 row)
SELECT to_tsvector('english', 'rel-3.2-A') as def_parser,
to_tsvector('english_ts', 'rel-3.2-A') as new_parser;
def_parser | new_parser
------------------+-------------------------------
'-3.2':2 'rel':1 | '3.2':3 'rel':2 'rel-3.2-a':1
(1 row)См. Ñакже
F.52.3. ÐвÑоÑÑ #
Postgres Professional, ÐоÑква, РоÑÑиÑ