F.50. pg_tsparser

pg_tsparser — это расширение Postgres Pro для текстового поиска. Это расширение меняет стандартную стратегию разбора текста для слов, включающих:

  • подчёркивания

  • цифры и буквы, разделённые знаком минуса

В дополнение к отдельным частям слова, возвращаемых по умолчанию, pg_tsparser также возвращает всё слово.

F.50.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.50.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)

См. также

CREATE TEXT SEARCH CONFIGURATION

ALTER TEXT SEARCH CONFIGURATION

F.50.3. Авторы

Postgres Professional, Москва, Россия

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy