| Документация по PostgreSQL 9.4.1 | |||
|---|---|---|---|
| Пред. | Уровень выше | Приложение E. Дополнительно поставляемые модули | След. | 
E.40. test_parser
Модуль test_parser представляет пример нестандартного разбора текста для полнотекстового поиска. Он не делает ничего особенно полезного, но может послужить отправной точкой для разработки собственной процедуры разбора.
Анализатор текста test_parser распознаёт слова, разделённые пробельными символами, и возвращает только два типа фрагментов:
mydb=# SELECT * FROM ts_token_type('testparser');
 tokid | alias |  description
-------+-------+---------------
     3 | word  | Word
    12 | blank | Space symbols
(2 rows) Такие номера фрагментов выбраны для совместимости с нумерацией стандартного анализатора. Это позволяет использовать его функцию headline() ради простоты примера.
E.40.1. Usage
При установке расширения test_parser в базе создаётся анализатор текстового поиска testparser. Он не имеет параметров, настраиваемых пользователем.
Вы можете протестировать этот анализатор, например, так:
mydb=# SELECT * FROM ts_parse('testparser', 'That''s my first own parser');
 tokid | token
-------+--------
     3 | That's
    12 |
     3 | my
    12 |
     3 | first
    12 |
     3 | own
    12 |
     3 | parserДля применения на практике нужно создать конфигурацию текстового поиска, которая будет использовать этот анализатор. Например:
mydb=# CREATE TEXT SEARCH CONFIGURATION testcfg ( PARSER = testparser );
CREATE TEXT SEARCH CONFIGURATION
mydb=# ALTER TEXT SEARCH CONFIGURATION testcfg
mydb-#   ADD MAPPING FOR word WITH english_stem;
ALTER TEXT SEARCH CONFIGURATION
mydb=#  SELECT to_tsvector('testcfg', 'That''s my first own parser');
          to_tsvector
-------------------------------
 'that':1 'first':3 'parser':5
(1 row)
mydb=# SELECT ts_headline('testcfg', 'Supernovae stars are the brightest phenomena in galaxies',
mydb(#                    to_tsquery('testcfg', 'star'));
                           ts_headline
-----------------------------------------------------------------
 Supernovae <b>stars</b> are the brightest phenomena in galaxies
(1 row)| Пред. | Начало | След. | 
| test_decoding | Уровень выше | test_shm_mq |